簡體   English   中英

比較SQL中nvarchar列上的Datetime值

[英]Compare Datetime values on nvarchar columns in SQL

在SQL Azure服務器數據庫中,表具有nvarchar列,該列包含字符串格式( dd/MM/yyyy )的日期值。 例如03/11/2011

ARTICLE1包含某些記錄的空值。

以下是我到目前為止嘗試過的查詢,但出現錯誤

從nvarchar數據類型到datetime數據類型的轉換導致值超出范圍。

SQL查詢

select 
    [Code], concat(fname,' ',lname) as Name, [ARTICLE1] 
from 
    #T2 
where    
    CAST(ISNULL( [ARTICLE1], '1900-01-01') AS DATETIME) >= CONVERT(DATETIME, '31/01/1920', 103) 
    and CAST(ISNULL( [ARTICLE1] , '1900-01-01') AS DATETIME) <= CONVERT(DATETIME, '31/01/2017', 103) 
    and Category in ('STAFF', 'MANAGER')

我得到了解決方案,需要將字符串轉換為日期時間而不是CAST

select [Code],concat(fname,' ',lname) as Name,[ARTICLE1] From #T2 where    
 CONVERT( DATETIME, ISNULL( [ARTICLE1] , '1900-01-01'), 103 )  >= CONVERT( DATETIME, '31/01/1920', 103 ) and 
 CONVERT( DATETIME, ISNULL( [ARTICLE1] , '1900-01-01'), 103 )  <= CONVERT( DATETIME, '31/01/2017' , 103 ) and Category in ('STAFF','MANAGER')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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