sqlserver2008时间转换问题,(拿上一个小时的数据)求解。

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个回答  2015-10-09

日期的增减别用-1,要用日期函数

DATEADD(hh, -1, 日期)    --将当前日期小时-1

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网