[英]How to get a short DateTime from SQL Server database and compare with DateTime.Now using Linq c#
我的表中有一欄dates
的date
數據類型的shortDate格式“2018年2月12日”。
現在我希望使用 C# 中的 Linq 查詢來檢索日期。
這是我在 SQL Server 上運行的查詢,它返回一些行:
select *
from tbl_Attendance
where Dates = '2018/2/12'
但是,如果我嘗試運行這些查詢,它會返回 null 或“方法無法轉換為存儲表達式”錯誤。
只有以下查詢返回了正確的 ID 但不正確的日期。
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();
和:
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();
如果要將某個日期與另一個日期進行比較,則不必使用DateTime.Now
因為它還會比較時間部分。 請改用DateTime.Today
。
錯誤
方法無法轉換為 store 表達式
出現是因為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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.