查询从当天早上6点到第二天早上6点取货

时间:2016-08-11 05:24:45

标签: sql sql-server

我需要每天从当天早上6点开始获取数据。我必须考虑早上6点到早上6点作为单日。我可以从一天的早上6点到晚上11:59获取数据,如果我想要在第二天剩余的6小时,也应该在前一天考虑。尝试了许多可能的方法来获取数据,但没有给我解决方案。

SGHH.DateTime >= DATEADD(HOUR,6,CONVERT(VARCHAR(10), GETDATE(),120))
 AND SGHH.DateTime <= DATEADD(HOUR,6,CONVERT(VARCHAR(10), GETDATE()+1,120))

尝试了这种方法但是在晚上11:59之后,getdate()将带来当前数据并且getdate()+ 1将降至第二天。

任何人都可以分享样品,以便在早上6点到早上6点之间找到数据吗?

2 个答案:

答案 0 :(得分:0)

你需要在今天的午夜时间增加6个小时,你可以通过仅从GETDATE()中取出日期部分来实现这一点:

DECLARE @TODAY DATETIME2 = DATEADD(HOUR, 6, CONVERT(DATE, GETDATE()));

SGHH.DateTime >= @TODAY 
AND
SGHH.DateTime <= DATEADD(DAY, 1, @TODAY)

答案 1 :(得分:0)

你所需要的是,6小时前的时间,是你现在使用的实际日期,所以在早上6点之前的任何事情,扣除6个整整小时将在前一天下降。

CONVERT(VARCHAR(10), GETDATE(),120) <= dateadd(hour,-6,SGHH.DateTime) 
    AND dateadd(hour,-6,SGHH.DateTime) <  CONVERT(VARCHAR(10), dateadd(day,1,GETDATE()) ,120)