在LINQ中以特定格式比较日期

时间:2015-04-02 08:16:18

标签: c# sql-server linq

我经常通过内联sql以这种方式比较日期。

SELECT * FROM dbo.tbl_MyTable
WHERE 
CONVERT(VARCHAR, DateTimeValueColumn, 112) >= CONVERT(VARCHAR, '20150101', 112) AND
CONVERT(VARCHAR, DateTimeValueColumn, 112) <= CONVERT(VARCHAR, '20150201', 112) 

我如何指示LINQ生成上述SQL以进行日期比较。寻找示例代码来实现这一目标。感谢

1 个答案:

答案 0 :(得分:0)

如果你真的被告知想要做的话会更容易回答:只比较时间戳的dart部分。您将它们转换为格式112(yyyyMMdd)以实现此目的。

如果您使用LINQ查询,则会为DateTimedatetime列获取datetime2个对象。要比较日期部分,您只需使用Date对象的DateTime属性,例如

[...]
where row.DateTimeColumn.Date >= new DateTime(2015, 1, 1) &&
      row.DateTimeColumn.Date <= new DateTime(2015, 2, 1)