首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算两个日期之间的时间量,如果超过/低于X年数,则返回true/false

问计算两个日期之间的时间量,如果超过/低于X年数,则返回true/false
EN

Stack Overflow用户
提问于 2020-10-14 00:47:51
回答 2查看 71关注 0票数 0

我想创建一个使用字段(datetime)的查询,并将其与当前时间(使用GETDATE())进行比较。如果距该字段已有10年之久,则返回true,否则返回false。

我尝试使用DATEDIFF()函数,但它似乎没有考虑月/天。有谁有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2020-10-14 00:48:45

SQL Server并没有真正的"true“和"false”。我会使用1和0

代码语言:javascript
复制
select (case when field < dateadd(year, -10, getdate()) then 1 else 0 end) as flag_10yr

请注意,这将直接比较日期,而不是datediff()。该函数计算两年之间的边界数,这不是一回事--根据该函数,2019-12-31和2020-01-01是“相隔1年”。

票数 2
EN

Stack Overflow用户

发布于 2020-10-14 01:04:50

如果日期部分参数设置为'year‘,则Datediff应执行此工作。

代码语言:javascript
复制
declare @field      datetime='2001-01-01';

select case when datediff(year, @field, getdate())>=10 then 'True' else 'False' end;

输出

代码语言:javascript
复制
True

或者编辑,如果你想要一个datetime和GETDATE之间的365天周期的实际数量,你可以使用日期部分' day‘并除以365。

查询

代码语言:javascript
复制
select case when datediff(day, @field, getdate())/365>=10 then 'True' else 'False' end

输出

代码语言:javascript
复制
True
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64339645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档