[英]Error comparing dates in SQL query
在一個ASP.NET/C#類中,我試圖在查詢查詢中比較日期:
select * from table1 CreatedDate >='DATEADD(d,-500,GETDATE())';
基本上,我試圖從最近500天中選擇行。
問題是我遇到以下錯誤:從字符串轉換datetime的語法錯誤。
數據庫中CreatedDate字段的示例是2003-09-19 15:32:23.283
。 該字段設置為type = datetime,默認= getdate()。
如果我運行查詢SELECT DATEADD(d,-500,GETDATE())
; 它返回2008-09-17 23:41:34.710
2個值看起來相同,所以我很驚訝收到錯誤消息。 關於如何修改查詢的想法?
select * from table1 CreatedDate >= DATEADD(d,-500,GETDATE())
丟失DATEADD(d,-500,GETDATE())
周圍的引號。 這些使表達式varchar
數據類型優先級意味着您正在嘗試將以DATEADD開頭的字符串轉換為datetime ...
您是否嘗試過不使用單引號?
CreatedDate >=DATEADD(d,-500,GETDATE())
您已在dateadd表達式前后加上撇號,因此它不是表達式,而是字符串。 這是無法將其轉換為日期時間值的字符串。
select * from table1 CreatedDate >= DATEADD(d,-500,GETDATE());
只需刪除''引號
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.