我的表格中包含dates
date
数据类型的select *
from tbl_Attendance
where Dates = '2018/2/12'
列,其格式为短日期' 2018/2/12'。
现在我想在C#中使用Linq查询检索日期。
这是我在SQL Server上运行的查询,它返回一些行:
var q = (from a in context.tbl_Attendance
where a.ID.Value.CompareTo(Iden) < 0 && a.Dates.Value.CompareTo(DateTime.Now) < 0
select a).FirstOrDefault();
但是,如果我尝试运行这些查询,它将返回null或&#34;方法无法转换为商店表达式&#34;错误。
只有以下查询返回了正确的ID,但日期不正确。
var q = (from a in context.tbl_Attendance
where a.Dates == DateTime.Now
select a).FirstOrDefault();
和:
var q = (from a in context.tbl_Attendance
where a.Dates.Value.ToShortDateString() == DateTime.Now.ToShortDateString()
select a).FirstOrDefault();
和
attendance = context.tbl_Attendance.Where(d => d.ID == row.xID && d.Dates == DateTime.Now).FirstOrDefault();
最后我也尝试过:
Dim file_name As New ArrayList
' find the last row with values
Dim Lr As Integer = xlworksheet1.Cells(xlworksheet1.Rows.Count, 1).End(Excel.XlDirection.xlUp).Row
' loop trough all cells in column 1 (A)
For i = 1 To Lr
file_name.Add(xlworksheet1.Cells(i, 1).value)
Next
Console.WriteLine(file_name)
For Each Name1 In file_name
Console.WriteLine(Name1)
Next
答案 0 :(得分:2)
如果您想将日期与其他日期进行比较,则不必使用DateTime.Now
,因为它还会比较时间部分。请改用DateTime.Today
。
错误
方法无法转换为商店表达式
因为DateTime.Now.ToShortDateString()
或CompareTo()
无法转换为SQL查询而出现。
我的建议:首先声明变量,为其赋值并在第二步中查询数据库。
代码:
DateTime myDate = DateTime.Today; // or DateTime.Parse("2018/2/12")
var result = (from a in context.tbl_Attendance
where a.Dates == myDate
select a).FirstOrDefault();