sql 时间按条件查询

我要设置有个提醒 就是当前时间前3个月到期的卡要准备删除。当前时间10天后到期的提醒续费。麻烦哪位大神帮我写一下语句。安装时间字段是varchar,谢谢。谢谢   使用这个语句会吧大于10天的所有数据都列出来了。我想判断的是当前系统时间 10天以内的不是大于10天的

SELECT FROM 总表 
WHERE DATEADD(MONTH,3, CAST(LEFT([安装日期],10) AS DATETIME))>GETDATE()+10


A9502F5F-617A-4A9A-93CB-FD917C27E7DE.png

ctt 发布于 2018-11-14 15:39 (编辑于 2018-11-14 16:03)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
3
snrtuemcLv8专家互助
发布于2020-8-29 09:51

select *,"已过期" as state from 总表 where dateadd(day,70,CONVERT(varchar(100), 安装日期, 23))<CONVERT(varchar(100), GETDATE(), 23)

union all

select *,"提醒" as state from 总表 where dateadd(day,60,CONVERT(varchar(100), 安装日期, 23))<CONVERT(varchar(100), GETDATE(), 23)


安装日期+70天小于今天的,状态已过期;

安装日期+60天小于今天的,就是需要提醒的,提前十天。

最佳回答
0
zsh331Lv8专家互助
发布于2018-11-14 15:41(编辑于 2018-11-14 16:07)

SELECT * 

FROM 总表 

WHERE 

DATEADD(MONTH,3, CAST(LEFT([安装日期],10) AS DATETIME))>GETDATE() and 

DATEADD(MONTH,3, CAST(LEFT([安装日期],10) AS DATETIME))<GETDATE()+10 


  • ctt ctt(提问者) 意思是。安装时间+70天小于当前系统时间。=已过期时间 安装时间+70天等于当前系统时间。=提醒时间
    2018-11-14 15:54 
  • ctt ctt(提问者) 不行哦。
    2018-11-14 16:19 
最佳回答
0
mind_childLv6见习互助
发布于2018-11-14 15:45

哪天到期提醒啊,还有十天了就提醒嘛

  • ctt ctt(提问者) 意思是。安装时间+70天小于当前系统时间。=已过期时间 安装时间+70天等于当前系统时间。=提醒时间
    2018-11-14 15:54 
  • 3关注人数
  • 1594浏览人数
  • 最后回答于:2020-8-29 09:51
    请选择关闭问题的原因
    确定 取消
    返回顶部