在使用EF時,想要比較字符串類型的日期時

原文地址(https://blog.csdn.net/yangxinyue315/article/details/44960895)

在使用EF時,想要比較字符串類型的日期時

在使用EF時,想要比較字符串類型的日期時,參考以下:

SQL語句:

1)select * from TableName where StartTime > ‘2015-04-08’ 
2)select * from TableName where StartTime >= ‘2015-04-08’ 
3)select * from TableName where StartTime < ‘2015-04-08’ 
4)select * from TableName where StartTime <= ‘2015-04-08’ 
lambda表達式寫法:

1).Where(a => a.StartTime.CompareTo(‘2015-04-08’) > 0) 
2).Where(a => a.StartTime.CompareTo(‘2015-04-08’) >= 0) 
3).Where(a => a.StartTime.CompareTo(‘2015-04-08’) < 0) 
4).Where(a => a.StartTime.CompareTo(‘2015-04-08’) <= 0) 
更規範的寫法:

1).Where(a => String.Compare(a.StartTime, ‘2015-04-08’, StringComparison.Ordinal) > 0) 
2).Where(a => String.Compare(a.StartTime, ‘2015-04-08’, StringComparison.Ordinal) >= 0) 
3).Where(a => String.Compare(a.StartTime, ‘2015-04-08’, StringComparison.Ordinal) < 0) 
4).Where(a => String.Compare(a.StartTime, ‘2015-04-08’, StringComparison.Ordinal) <= 0)

(sqlserver和ef在日期datetime類型上面坑還是比較多(比如mvc返回json結果時,會自動把日期類型轉化爲時間戳,比如sqlserver比較datetime類型的大小要比varchar類型複雜),實際使用時,日期類型使用varachar不失爲一個好的選擇)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章