如何在查询的where子句中将年,月和日连接起来?
我试图这样做,但是它带来了错误消息,varchar数据类型到datetime数据类型的转换导致值超出范围。 SQL状态:22007
Select *
from table_name
where DocDate >= cast(YEAR({?dateto}) as varchar(4)) + '-02-' + cast(DAY({?dateto}) as varchar(2))
请任何人都可以帮助我
答案 0 :(得分:0)
您为什么要这么做?只需使用datefromparts()
:
where docdate >= datefromparts(YEAR({?dateto}), 2, DAY({?dateto}))
当然,二月只有28或29天,因此您可能需要考虑到这一点:
where docdate >= datefromparts(YEAR({?dateto}), 2,
(CASE WHEN DAY({?dateto}) > 28 THEN 28 ELSE DAY({?dateto}) END)
)