日期的串联

Concatenation of dates

如何连接年、月和日以便在查询的 where 子句中使用它?

我尝试这样做,但它带来了错误消息,将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。 SQL 州:22007

Select * 
from table_name 
where DocDate >= cast(YEAR({?dateto}) as varchar(4)) + '-02-' + cast(DAY({?dateto}) as varchar(2))

请任何人帮助我

你为什么要这么做?只需使用 datefromparts():

where docdate >= datefromparts(YEAR({?dateto}), 2, DAY({?dateto}))

当然,2 月只有 28 或 29 天,所以您可能需要考虑到这一点:

where docdate >= datefromparts(YEAR({?dateto}), 2,
                               (CASE WHEN DAY({?dateto}) > 28 THEN 28 ELSE DAY({?dateto}) END)
                              )