sql server查询,查找准确的1年之差



需要禁用数据库(SQL Server)的用户在1年的确切完成。
为此,我有以下查询,该查询将由作业及时执行。

update TOCustDetails
set IsActive = 0
where DATEDIFF(DAY,CreatedOn,(DATEADD (YEAR,1,CreatedOn)))  >= 365


但它在以下几个方面是失败的:
1. 闰年处理没有完成,可以通过检查年份来完成,我知道
2. 我不喜欢像365之类的硬编码
3.它也不准确,因为我需要至少达到秒的精度水平。+/- 1秒的延迟可以。

有谁能给我一点建议吗?

根据您的问题,您正在尝试检查过期日期是否已过,因此获取过期日期并检查是否发生过,如下所示:

DATEADD(YEAR,1,CreatedOn) <= getdate()

这里我们正在计算DATEADD(YEAR,1,CreatedOn)的到期日期,它将与CreatedOn一样准确,并将其与当前日期getdate()进行比较

相关内容

  • 没有找到相关文章

最新更新