检索时间段T-SQL

问题描述:

我以这样的方式设置为买到今天检索时间段T-SQL

结果的存储过程,

DECLARE @Start DATETIME 
DECLARE @End DATETIME 
SET @Start = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) 
SET @End = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1) 

PRINT @Start 
PRINT @End 

给我的时间

May 30 2016 12:00AM 
May 31 2016 12:00AM 

如何修改该条款以给我期间

May 29 2016 5:30PM(Previous day) 
May 31 2016 12:00AM(Today) 

亲切的问候

+0

所以你想'@Start =现在 - 24小时? '如'DATEADD(DAY,-1,GETDATE())'? –

+0

多数民众赞成在...虽然管理,但 – Arianule

尝试这种解决方案:

SET @Start = DATEADD(MINUTE, 30, DATEADD(HOUR, 17, DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), -1))) 

SET @End = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1) 

DECLARE @Start DATETIME 
DECLARE @End DATETIME 
SET @Start = GETDATE()-1 
SET @End = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1) 

PRINT @Start 
PRINT @End 
+0

千万不要使用'GETDATE()-1' –

+0

@ChaosLegion任何具体原因? –

+0

这不是最佳实践,必须尽快停止使用它。请参阅此[链接](http://www.devx.com/dbzone/Article/34594)。我相信你会发现它很有趣。 –

dateadd(day, -1, getdate()) 

可能只是使用DateAdd像上面。