In Transact -SQL-Abfragen , ist es oft notwendig, um Aggregatfunktionen wie Gruppierung der Ergebnisse nach Datum durchzuführen. SQL bietet die "Date" Datentyp für die Speicherung von Daten wie Termine und der " DateTime " Datentyp für die Speicherung von Daten in einer Timestamp-Format , mit Datum und die Uhrzeit in Stunden, Minuten und Sekunden. Sie können " datetime " Daten zu einer ISO formatierte Datum ( JJJJMMTT ) während der Aggregation zu konvertieren , um die Zeit Teil zu entfernen. Sie können auch spalten die " datetime " Daten in einzelne Teile mit dem " DATEPART "-Funktion und Gruppen durch die Teile des Datums und der Zeit ohne die Sekunden. Things You
MS SQL Server 2005 oder eine neuere Version
MS SQL Server Management Studio
brauchen anzeigen Weitere Anweisungen
Conversion
1
Starten Sie den Microsoft SQL Server Management Studio-Anwendung und eine Verbindung zum SQL Server -Datenbank-Engine .
2
Öffnen Sie eine Abfrage -Editor-Fenster .
3
Format Ihrer Anfrage um die " datetime konvertieren " auf einen String im ISO-Standard Datumsformat ohne Zeitanteil ( yyyymmdd ) aufzeichnen. "Yyyy " ist das Jahr , "mm" ist der Monat und "dd" ist das Datum . Die " 112 " in der " Convert"- Funktion gibt die ISO-Format.
CONVERT ( CHAR (8) , date_field , 112) wandelt die " datetime " date_field zu einer ISO formatierten String aus acht Zeichen bestehen.
CAST ( CONVERT ( CHAR (8) , date_field , 112) AS dATETIME ) wandelt die " datetime " date_field in eine ISO formatierte Datum ohne Zeit.
Um es in der GROUP BY- Funktion können Sie müssen Sie die Abfrage wie formatieren :
SELECT date_field
FROM table WHERE-Bedingungen
GROUP BY CAST ( CONVERT ( CHAR (8) , date_field , 112) AS DATETIME )
DATEPART
4
Starten Sie den MS SQL Server Management Studio-Anwendung und eine Verbindung zum SQL Server -Datenbank-Engine .
5 < p> Öffnen Sie eine Abfrage -Editor-Fenster .
6
Format Ihrer Anfrage wie gezeigt, mit dem " DATEPART "-Funktion , um das Datumsfeld in seine Bestandteile aufgeteilt. Sie würden dann jedes Teil in der " GROUP BY "-Funktion , wodurch die Sekunden, um ein " GROUP BY" ohne Sekunden nur ausführen , wobei " yyyy" ist das Jahr , "mm" ist der Monat , "dd" ist der Tag , "hh " ist die Stunde und "n" ist die Minute.
SELECT
DATEPART ( yyyy , date_field ), Stand
DATEPART (mm, date_field ), Stand
DATEPART (dd, date_field ), Stand
DATEPART (hh , date_field ), Stand
DATEPART (n, date_field )
FROM table
GROUP BY
DATEPART ( yyyy , date_field ), Stand
DATEPART (mm, date_field ), Stand
DATEPART (dd, date_field ), Stand
DATEPART (hh , date_field ), Stand
DATEPART (n, date_field )