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