在第三方數據庫中,日期以YYYYMMDD格式存儲爲字符串。將linq內的日期轉換操作轉換爲實體
在SQL我可以使用下面的語句:
WHERE convert(datetime,convert(varchar(8),a.appt_date,112)) = convert(datetime,convert(varchar(8), dateadd(dd,+1,getdate()), 112))
是否有類似的東西,我可以在LINQ做EF?或者是我記憶中做它唯一的選擇,例如:
dim data = (from item in entities.itemsSet).ToList()
dim filtered = from item in data
where Convert.ToDateTime(shift.starttime) >= startDate
&& Convert.ToDateTime(shift.endtime) < endDate
select item
你有沒有嘗試你的第二個例子'ToList()'?它應該只是工作([鏈接](http://stackoverflow.com/q/992189/335858))。 – dasblinkenlight 2015-02-10 14:39:17
首先,這是*不*您如何比較SQL中的日期。您應該將字段從'datetime'轉換爲'date',並將其與日期參數進行比較。 SQL Server足夠聰明,可將其轉換爲範圍查詢。其次,爲什麼'Convert.ToDateTime'如果底層字段已經是日期?如果不是,它使用了錯誤的類型,應該先修復 – 2015-02-10 14:39:54
只要注意到你*將日期存儲爲字符串。你需要先解決這個問題。 SQL Server確實有'日期'類型。沒有理由爲此使用字符串,以及許多原因,您不應該這樣做。 – 2015-02-10 14:57:44