2013-05-20 11 views
33

Ich habe query:Wie wähle ich Daten aus 30 Tagen aus?

SELECT name 
FROM (
SELECT name FROM 
Hist_answer 
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) 
UNION ALL 
SELECT name FROM 
Hist_internet 
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH) 
) x 
GROUP BY name ORDER BY name 

Aber DATE_SUB eine MySQL-Funktion ist, und ich brauche Funktion für MsSQL 2008

Sagen Sie mir bitte, wie die Daten wählen ab 30 Tage nach MsSQL 2008 mit?

PS: Datentyp von Datetime ist smalldatetime

Antwort

43

sollten Sie DATEADD werden mithilfe von SQL Server ist so, wenn versuchen, diese einfache wählen sehen Sie die

Select DATEADD(Month, -1, getdate()) 

Ergebnis beeinflussen

2013-04-20 14:08:07.177 

in Ihrem Fall versuchen, diese Abfrage

SELECT name 
FROM (
SELECT name FROM 
Hist_answer 
WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE()) 
UNION ALL 
SELECT name FROM 
Hist_internet 
WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE()) 
) x 
GROUP BY name ORDER BY name 
+0

FEHLER 'Falsche Syntax in der Nähe des Schlüsselwortes 'CURRENT_DATE'.' –

+1

Erneut versuchen, Abfrage geändert, seit Sie zuletzt kopiert – Rab

17

Try this: Mit diesem Sie Datum von letzten 30 Tagen auswählen,

SELECT DATEADD(DAY,-30,GETDATE()) 
+0

nur aktualisieren Ihr DATE_SUB mit DATEADD (DAY, -30, GETDATE()) – Anvesh

8

Für diejenigen, die nicht DATEADD arbeiten konnte, versuchen Sie stattdessen: (NOW() - INTERVAL 1 Monat)

+1

Nizza. Das hat gut funktioniert! Vielen Dank. –

Verwandte Themen