显示发货日期大于今天的数据

时间:2018-07-31 12:07:35

标签: sql sql-server tsql

我正在尝试为装运日期大于今天的所有装运提取数据。但是,我无法弄清楚nvarchar格式的简单转换,尝试运行此代码时出现超出范围的值错误:

select * 
from dbo.BAS_CT_RAW_ARCHIVE_TBL
where SHIPMENTDATE > GETDATE()
  

消息242,级别16,状态3,第1行nvarchar数据的转换   类型转换为日期时间数据类型会导致值超出范围。

2 个答案:

答案 0 :(得分:1)

尝试:

select * 
from dbo.BAS_CT_RAW_ARCHIVE_TBL
where convert(date, SHIPMENTDATE, 103) > GETDATE()

要查看如何将convert与非标准日期一起使用,请参见 this

进一步考虑:对列使用正确的数据类型,即不要将日期存储为字符串,而应将数据存储为date数据类型-这样可以避免出现此类问题。

答案 1 :(得分:0)

根据下面评论中的数据格式,应该可以使用

 select * from dbo.BAS_CT_RAW_ARCHIVE_TBL
    where CONVERT(date, SHIPMENTDATE, 103) > convert(date, GETDATE())