sql - 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()+7
,between
哪个不起作用……有人可以帮我解决这个问题吗?谢谢!
解决方案
您可以使用 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'
推荐阅读
- ios - UITableViewCell 未扩展以完全适合内容视图中的项目
- flutter - 颤振构建运行器注册生成器以在颤动中使用蜂巢数据库时出现问题
- github - 无法更新 github 页面
- swift - 我需要知道如何使用 AVCaptureManualExposureBrackedStillImageSettings 手动设置曝光时间?
- selenium - 使用 selenium 在 UI 中实际上没有执行拖放操作
- xml - Perl 如何从 XML 文件中删除标签?
- android - Unity需要接入华为HMS SDK,包名必须以.HUAWEI结尾
- bash - 当该字符串是bash命令时,如何替换文件中的字符串
- javascript - 为什么在递归中使用 let replace var 更好?
- css - CSS 样式未按预期应用(Haskell 项目)