2016-05-30 10 views
0

Ich habe eine gespeicherte Prozedur in einer solchen Art und Weise aufgebaut wie die Ergebnisse zu bekommen heuteApportieren Zeit T-SQL

so

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 

gibt mir die Zeit

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

Wie kann ich die Klausel ändern, um mir den Zeitraum

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

Mit freundlichen Grüßen

+0

Also willst du '@Start = Now - 24hours? 'Wie in' DATEADD (DAY, -1, GETDATE()) '? –

+0

Das ist die eine ... hat aber geschafft, danke – Arianule

Antwort

1

diese Lösung Versuchen:

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

SET @End = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1) 
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

Verwenden Sie niemals 'GETDATE() - 1' –

+0

@ChaosLegion einen bestimmten Grund? –

+0

Es gehört nicht zu den Best Practices und man muss lernen so schnell wie möglich damit aufzuhören. Siehe [link] (http://www.devx.com/dbzone/Article/34594). Ich bin sicher, du wirst es interessant finden. –

1
dateadd(day, -1, getdate()) 

Mai benutzen, nur die DateAdd wie oben.