select * from table
WHERE 采集时间点 between CONVERT(varchar, GETDATE(), 23) + ' ' + convert(varchar, DATENAME(hour,getdate())-1) +':00:00'
and CONVERT(varchar(100), GETDATE(), 23) + ' ' + CONVERT(VARCHAR,DATENAME(hour,getdate()) -1) +':59:59' 查不到数据(实际中是有数据)
select * from table
WHERE 采集时间点 between CONVERT(varchar, GETDATE(), 23) + ' ' + convert(varchar, DATENAME(hour,getdate())) +':00:00'
and CONVERT(varchar(100), GETDATE(), 23) + ' ' + CONVERT(VARCHAR,DATENAME(hour,getdate()) ) +':59:59' 不写减一就对了,实现的是取上一个小时的数据。 懂行的帮忙看看。
下面那个写的意思取得是当前小时内的数据,上面减一的取得是上个小时的数据,首先你要确定表里有没有满足减一时间条件的数据
追问我昨天还是可以的,今天就不行了,什么都没动。 我这边也能像你那样找出来范围的,但是在证据运行中实现 “减1”时就查不出数据,数据是有的。 但是不减一能查出来数据。 很奇怪的。 昨天是好的,我很确定,是不是数据库有问题?
追答昨天日期跟今天不一样啊 昨天是8号 今天是9号啊 你的getdate()取得不是昨天的啊,你先可以把日期写死(写成昨天的)测下
日期的增减别用-1,要用日期函数
DATEADD(hh, -1, 日期) --将当前日期小时-1