我想创建一个使用字段(datetime)的查询,并将其与当前时间(使用GETDATE())进行比较。如果距该字段已有10年之久,则返回true,否则返回false。
我尝试使用DATEDIFF()函数,但它似乎没有考虑月/天。有谁有什么建议吗?
发布于 2020-10-14 00:48:45
SQL Server并没有真正的"true“和"false”。我会使用1和0
select (case when field < dateadd(year, -10, getdate()) then 1 else 0 end) as flag_10yr请注意,这将直接比较日期,而不是datediff()。该函数计算两年之间的边界数,这不是一回事--根据该函数,2019-12-31和2020-01-01是“相隔1年”。
发布于 2020-10-14 01:04:50
如果日期部分参数设置为'year‘,则Datediff应执行此工作。
declare @field datetime='2001-01-01';
select case when datediff(year, @field, getdate())>=10 then 'True' else 'False' end;输出
True或者编辑,如果你想要一个datetime和GETDATE之间的365天周期的实际数量,你可以使用日期部分' day‘并除以365。
查询
select case when datediff(day, @field, getdate())/365>=10 then 'True' else 'False' end输出
Truehttps://stackoverflow.com/questions/64339645
复制相似问题