I Transact- SQL-forespørgsler , er det ofte nødvendigt at foretage samlede funktioner såsom gruppering resultater efter dato. SQL tilbyder " Date" datatype til lagring af data som datoer og " DateTime " datatype til lagring af data i et tidsstempel format med dato og tid i timer, minutter og sekunder. Du kan konvertere " datetime " data til en ISO -formateret dato ( ÅÅÅÅMMDD ) under sammenlægning til at fjerne den tid portion. Du kan også opdele de " datetime " data i de enkelte dele ved hjælp af " DATEPART " funktion og gruppen af de dele af dato og tid uden sekunder. Ting du skal
MS SQL Server 2005 eller nyere version
MS SQL Server Management Studio
Vis Flere Instruktioner
Conversion
1
Start Microsoft SQL server Management Studio og oprette forbindelse til SQL Server-database motor.
2
Åbn en forespørgsel editor -vinduet.
3
Formater din forespørgsel til at konvertere " datetime "Optag til en streng i ISO-standard datoformat med ingen tid portion ( ÅÅÅÅMMDD ) . "YYYY " er det år , "mm" er måneden og " dd " er den dato. Den " 112 " i "Konverter "-funktionen angiver ISO-format.
CONVERT ( CHAR ( 8) , date_field , 112) konverterer " datetime " date_field til en ISO formateret streng af otte tegn .
CAST ( CONVERT ( CHAR ( 8) , date_field , 112) AS DATETIME ) konverterer " datetime " date_field ind i en ISO formateret dato uden tid .
For at bruge det i GROUP BY funktionen du nødt til at formatere forespørgslen som : Hej
SELECT date_field
fra tabel
WHERE betingelser
GROUP BY CAST ( CONVERT ( CHAR ( 8) , date_field , 112) AS DATETIME )
DATEPART
4
Start MS SQL Server Management Studio og oprette forbindelse til SQL Server-database motor.
5 < p> Åbn en forespørgsel editor -vinduet.
6
Formater din forespørgsel , som vist , ved hjælp af " DATEPART "-funktionen til at splitte datofeltet i sine bestanddele. Du vil derefter bruge hver del i " GROUP BY "-funktion , fjerne sekunder at udføre en " GROUP BY " uden sekunder kun hvor " yyyy " er det år , "mm" er den måned , " dd" er den dag , "hh " er den time og "n " er det øjeblik .
SELECT
DATEPART ( yyyy , date_field ) , Amerikas
DATEPART (mm , date_field ) , Amerikas
DATEPART (dd, date_field ) , Amerikas
DATEPART ( hh , date_field ) , Amerikas
DATEPART (n, date_field )
FROM tabel
GROUP BY
DATEPART ( yyyy , date_field ) , Amerikas
DATEPART (mm , date_field ) , Amerikas
DATEPART (dd, date_field ) , Amerikas
DATEPART ( hh date_field ) , Amerikas
DATEPART (n , date_field )