T- SQL DateDiff funktionen giver dig mulighed for at sammenligne to datoer og returnere forskellen mellem dem i en række forskellige intervaller , herunder år , måneder , dage , timer, minutter eller sekunder . For at kontrollere kronologi , kan du også bruge " mellem ", og kontrollere, om en bestemt dato falder mellem to andre. Du kan også sammenligne to datoer ved hjælp af større end , mindre end og lig med operatører. Dato Datatyper
Beginning med SQL 2008 , Microsoft databaser understøtter datatyper , der giver dig mulighed for at gemme dato og tidspunkt separat. Andre date værdier omfatter smalldatetime , som gemmer et kombineret dato og tid værdi, der ikke omfatter sekunder datetime , som gemmer værdien med en nøjagtighed på op til 0,00333 sekunder og datetime2 med en præcision på 100 nanosekunder .
< Br >
Brug DateDiff
DateDiff tillader dig at returnere antallet af grænserne for en bestemt type , der opstår mellem to datoer . Tilgængelige intervaller eller grænser , for at kontrollere omfatter år , kvartal , måned, dag , uge, time, minut, sekund og mere . Formatet af DateDiff funktionen er DateDiff ( " grænse ", Startdato , Slutdato ) . Grænsen er DatePart du vil tjekke for , fra de valg ovenfor. Mange forkortelser kan anvendes til disse dateparts . Den startdato og slutdato kan være ethvert gyldigt udtryk eller variabel , der evalueres til en legititmate dato eller tid datatype.
Sammenligning hjælp Mellem
For at kontrollere, om en dato indtræffer efter en bestemt dato og før en anden dato, kan du bruge MELLEM erklæring. Dette er nyttigt i en forespørgsel for at få alle objekter i en bestemt periode. Du kan for eksempel bruge det i WHERE til at trække alle hændelser sker i januar , som vist nedenfor : Hej
SELECT begivenheds-ID , EVENTDATE fra EventsWHERE EVENTDATE mellem '01 /01/2011 ' OG '01 /31 /2011 '
Andre Dato Sammenligninger
at sammenligne to datoer , kan du også bruge den større end, mindre end eller lig operatører i din HVOR udsagn. At finde alle poster med en dato før 1. januar 2011, ville du bruge : SELECT * fra [ table ] WHERE dato < '01 /01/2011 ' . Den samme logik gælder for større end og lige sammenligninger. Sammenligning datoer ved hjælp af denne metode gør højde for tidsværdier gemt i en datetime datatype, så hvis du vil have alt , før middag på en bestemt dato , skal du sørge for at medtage det i den del , efter sammenligning tegn.
< Br være >