[英]How to get only Date from datetime column of type varchar(32) using linq
我在表中有一個列為PSR_LOAD_DATE_TIME,其中包含格式為2016-01-09 14:06:19的值
但是該列的類型為varchar(32)。
我有一個linq查詢,僅將PSR_LOAD_DATE_TIME與特定日期進行比較。 但是它將PSR_LOAD_DATE_TIME與時間進行比較。
其中(t0.PSR_LOAD_DATE_TIME.CompareTo(from_Date)> = 0)&&(t0.PSR_LOAD_DATE_TIME.CompareTo(to_Date)<= 0)
這里from_Date和to_Date變量包含類似2016-01-03的值。
因此,我需要從PSR_LOAD_DATE_TIME中刪除時間部分。
怎么寫Linq查詢呢?
您可以將PSR_LOAD_DATE_TIME中的DateTime表達式解析為真實的DateTime,然后僅使用該DateTime對象的Date部分。
void Main()
{
List<string> dates = new List<string>();
dates.Add("2016-01-18 12:05:12");
string from_Date = "2016-01-16";
string to_Date = "2016-01-18";
var date = from d in dates where (DateTime.ParseExact(d, "yyyy-MM-dd HH:mm:ss", null)
.Date.CompareTo(DateTime.ParseExact(from_Date, "yyyy-MM-dd", null)) >= 0 &&
DateTime.ParseExact(d, "yyyy-MM-dd HH:mm:ss", null)
.Date.CompareTo(DateTime.ParseExact(to_Date, "yyyy-MM-dd", null)) <= 0)
select d;
foreach(var d in date) {
Console.WriteLine(d.ToString());
}
}
我想您使用EF來查詢這一點。
所以你應該嘗試
DbFunctions.TruncateTime
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.