Fra*_*Thu 50 c# datetime linq-to-entities entity-framework compare
var _My_ResetSet_Array = _DB
.tbl_MyTable
.Where(x => x.Active == true
&& x.DateTimeValueColumn <= DateTime.Now)
.Select(x => x);
Run Code Online (Sandbox Code Playgroud)
上层查询工作正常.
但我只想检查日期值.
但是上层查询检查日期+时间值.
在传统的mssql中,我可以编写如下的查询.
SELECT * FROM dbo.tbl_MyTable
WHERE
CAST(CONVERT(CHAR(10), DateTimeValueColumn, 102) AS DATE) <=
CAST(CONVERT(CHAR(10),GETDATE(),102) AS DATE)
AND
Active = 1
Run Code Online (Sandbox Code Playgroud)
所以任何人都可以给我建议我怎样才能检查Linq中的日期值.
Joh*_*ais 109
还有EntityFunctions.TruncateTime或DbFunctions.TruncateTime在EF 6.0中
Pra*_*ana 18
此问题的简单解决方法是仅比较日期部分
var _My_ResetSet_Array = _DB
.tbl_MyTable
.Where(x => x.Active == true &&
x.DateTimeValueColumn.Year == DateTime.Now.Year
&& x.DateTimeValueColumn.Month == DateTime.Now.Month
&& x.DateTimeValueColumn.Day == DateTime.Now.Day);
Run Code Online (Sandbox Code Playgroud)
因为linq to entity不支持'Date'数据类型,因为Year,Month和Day是'int'数据类型并且受支持.
| 归档时间: |
|
| 查看次数: |
109135 次 |
| 最近记录: |