反馈个BUG 返回

C#论坛 老数据
2 1945
string sqlstr="       
         SELECT
            Price AS SunShinePrice,
       	   [CreateTime]
       FROM  dbo.T_SunPurchase
       WHERE cityID = 1004212 
       AND CONVERT(VARCHAR(100), GETDATE(), 23) BETWEEN CONVERT(VARCHAR(100), EffectiveFrom, 23) AND CONVERT(VARCHAR(100), EffectiveTo, 23) 
       AND  [Status]=14002 
       AND ProductID=2000001
       AND CompanyCode='FMC'  ";


db.Queryable<object>(sqlstr).OrderBy("CreateTime DESC").Take(1).ToDataTable();



生成的SQL报错,用的MSSQL

SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY CreateTime DESC) AS RowIndex  FROM [Object]        
       SELECT
            Price AS SunShinePrice,
       	   [CreateTime]
       FROM  dbo.T_SunPurchase
       WHERE cityID = 1004212 
       AND CONVERT(VARCHAR(100), GETDATE(), 23) BETWEEN CONVERT(VARCHAR(100), EffectiveFrom, 23) AND CONVERT(VARCHAR(100), EffectiveTo, 23) 
       AND  [Status]=14002 
       AND ProductID=2000001
       AND CompanyCode='FMC'
         ) T WHERE RowIndex BETWEEN 1 AND 1


image.png

热忱回答2