SQL基础,时间相减问题,批量有效期查询

qqluciferzy 2020-05-26 10:57:28
有一张表的一个字段为有效期字段

想是想查询数据
查询当天起 30天内要过期的数据。


用了下面的语句
select * from AIC_Base_Card where DateDiff(dd,CA_EndDatetime,getdate())<=30

但发现发早于当天日志 但相减时间30天内的数据也查出来了 。有什么办法 只查询 大于当前时间后的时间去减去有效期结束时间 而门组30天的方法吗

请教
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqluciferzy 2020-05-27
  • 打赏
  • 举报
回复
比如
引用 3 楼 卖水果的net 的回复:
select convert(varchar(10),getdate(),121) C1, convert(varchar(10),dateadd(month, 1, getdate()), 121) C2, convert(varchar(10),dateadd(month, 1, getdate()+1), 121) C3 C1 C2 C3 ---------- ---------- ---------- 2020-05-27 2020-06-27 2020-06-28 (1 行受影响) 完成时间: 2020-05-27T08:44:43.1865329+08:00
不好意思 我按您的语句 确实有这个效果 但我的实际数据为 卡片 截至日期 0001 2020-05-01 0002 2020-06-03 0003 2020-06-25 0004 2020-05-20 我在2020-05-27执行查询 想要的结果为 0002 2020-06-03 0003 2020-06-25 以2020-05-27为节点 往后30天内过期的数据 这个要怎么实现
xiaoxiangqing 2020-05-27
  • 打赏
  • 举报
回复
楼上的就可以。
卖水果的net 版主 2020-05-27
  • 打赏
  • 举报
回复
select convert(varchar(10),getdate(),121) C1, convert(varchar(10),dateadd(month, 1, getdate()), 121) C2, convert(varchar(10),dateadd(month, 1, getdate()+1), 121) C3 C1 C2 C3 ---------- ---------- ---------- 2020-05-27 2020-06-27 2020-06-28 (1 行受影响) 完成时间: 2020-05-27T08:44:43.1865329+08:00
qqluciferzy 2020-05-27
  • 打赏
  • 举报
回复
引用 1 楼 卖水果的net的回复:
查询当天起 30天内要过期的数据。 这要看 30 天,你是怎么定义的,要不要精确到秒。 建议写成这样的,性能要好(这列 如果加了索引,能用到) where CA_EndDatetime <= getdate() - 30
比如今天是5.27,我想查有效期再5.27~6.27区间内的数据,30天的数据
卖水果的net 版主 2020-05-27
  • 打赏
  • 举报
回复
查询当天起 30天内要过期的数据。 这要看 30 天,你是怎么定义的,要不要精确到秒。 建议写成这样的,性能要好(这列 如果加了索引,能用到) where CA_EndDatetime <= getdate() - 30

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧