簡體   English   中英

比較SQL查詢中的日期時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM