首页 > 解决方案 > SQL将列中的日期与系统日期进行比较

问题描述

我有一列st_duedate有多个日期。

我想将这些日期与系统日期进行比较,并为它们的到期时间添加一列。

我目前在 SSMS 中有以下代码,用于查找系统日期和当前系统日期之前的日期。

CASE 
    WHEN st_duedate < GETDATE() THEN 'Overdue'
    WHEN st_duedate = GETDATE() THEN 'Due Today'
END AS 'Due when'

我想在此“到期时间”列中添加“7 天内到期”和“7 天后到期”。因此,between > system date and <= 7查看“7 天内到期”,然后system date > 7查看“7 天后到期”。

我试过了GETDATE()+7between哪个不起作用……有人可以帮我解决这个问题吗?谢谢!

标签: sqlsql-servertsql

解决方案


您可以使用 DATEDIFF 功能。

CASE 
WHEN DATEDIFF(day,st_duedate,getdate()) <= 7 THEN 'Due within 7 Days'
WHEN DATEDIFF(day,st_duedate,getdate()) > 7 THEN 'Due after 7 Days'
END AS 'Due when'

推荐阅读