sql sever中如何筛选超过某个时间段的值

说实话,我以前在项目中也遇到过这个SQL语句,但是我需要回顾一下一些细节。
你的代码是按日期进行比较的,但是写法有点绕,尤其是日期的变化。
让我帮你解决这个问题:
sql -
第一篇文章 从表中选择 WHERE endTime > CONVERT(DATETIME, CONVERT(VARCHAR(4 )), YEAR(startTime) + 5 ) + '-' 说白了,这个SQL比较的是“结束时间”和“开始时间及5 年”日期。
但问题可能出在转换部分:
1 .年份计算:YEAR(第一次)+ 5 这行没有任何问题,只是增加了 5 年。
2 、格式拼接:使用CONVERT(VARCHAR...)分割成'yyyy-mm-date'。
这个想法非常重要 3 . 主要风险:如果“原始时间”为2 02 3 年1 2 月3 1 日,则计算出的新日期为2 02 8 年1 2 月3 1 日。
但如果“第一次”是2 02 3 年1 1 月3 0日,那么除了5 年之外,那就是2 02 8 年1 1 月3 0日——除夕夜相差1 天!您的业​​务是每天还是每月进行比较?这一点很重要
我当时不明白,为什么不用更简单的写法呢?例如:
sql -
简单版 从表中选择 WHERE 结束时间 > DATEADD (YEAR, 5 , startTime)
这行代码给简单明了的“第一次”增添了5 年的时间。
如果一定要保持原来的风格:测试用例:
sql - 测试用例 选择 第一次, 上次, CONVERT(日期时间, CONVERT(VARCHAR(4 )), 年(初始时间) + 5 ) + '-' 从表中 WHERE endTime > CONVERT(DATETIME, CONVERT(VARCHAR(4 )), 年(startTime) + 5 ) + '-' 看看这个测试表,单独列出更改的日期是否更有意义?我个人不会运行这个异常。
我记得信息在X区域,但我建议你检查一下确切的结果。

oracle查询日期字段大于某个日期值时sql语句怎么写

记得有一次,我很忙的时候,突然接到一个任务,要求我在2 01 6 年1 2 月7 日早上8 点以后写一个SQL查询来过滤数据。
我赶紧打开数据库,开始敲代码。

时间:2 01 6 年1 2 月7 日,地点:办公室电脑前。

我使用了您提供的SQL语句,但我想知道日期格式转换是否正确。
我记得它,我想我在训练中学过一次。

selectfrom 表名哪个日期字段 > to_date('2 01 6 -1 2 -07 08 :00:00','yyyy-mm-ddhh2 4 :mi:ss');
等等,我突然想到,这个时间格式中的“hh2 4 ”是什么意思?是2 4 小时制吗?或者我们实际上可以在这里写“2 4 :00”来表示一天的结束吗?
不过,不管怎样,我们先运行一下这段代码,看看效果。
如果数据没有经过过滤,你需要回去向同事请教。

结果是什么?数据已被过滤,看起来我的代码是正确的。
但这个“hh2 4 ”到底是什么意思呢?我决定回去再查一下资料。