【发布时间】:2012-03-01 21:06:20
【问题描述】:
我有一个 LINQ 2 SQL 查询,它为我提供了 2012 年 2 月的结果列表。结果 where 子句是
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 的结果吗?
【问题讨论】:
标签: linq-to-sql datetime sql-server-2008-r2