我的影片让我结果的列表为2012年2月得到的where子句的一个月LINQ 2 SQL查询不正确的日期比较结果在SQL Server 2008 R2
DECLARE @p0 DateTime = '2012-02-01 00:00:00.000'
DECLARE @p1 DateTime = '2012-02-29 23:59:59.999'
....
WHERE (CONVERT(DATE, [t0].[DatePlaced]) >= @p0) AND (CONVERT(DATE, [t0].[DatePlaced]) <= @p1)
在运行此我”获得2012年3月1日的结果以及2012年2月的所有结果。
如果我将where子句更改为使用BETWEEN
,那么结果仅包含2月份的日期。
WHERE [t0].[DatePlaced] BETWEEN @p0 AND @p1
我正在使用.net 4和SQL Server 2008 R2(带和不带SP1)。
将日期切换到2011年3月1日,我的查询结束日期为'2011-02-28 23:59:59.999'
的结果相同。
除了使用LINQ 2 SQL不支持的BETWEEN之外,是否还有另一种获得仅用于2/2012的结果的方法?
而不是添加计算列,我只是简单地比较日期的月份和年份部分。我相信这是一种性能上的折衷,但它只是用于内部报告,所以目前这不是什么大问题。 – 2012-03-11 04:47:24