T - SQL DateDiff funktion kan du jämföra två datum och returnera skillnaden mellan dem i en mängd olika intervall , inklusive år , månader , dagar , timmar, minuter eller sekunder . För att kontrollera kronologi , kan du också använda " mellan " och kontrollera om ett visst datum infaller mellan två andra . Du kan också jämföra två datum med hjälp av större än , mindre än och lika med operatörerna . Datum Datatyper
Början med SQL 2008 , Microsoft databaser stödjer datatyper som tillåter dig att lagra datum och tid för sig . Andra datumvärdena inkluderar smalldatetime , som lagrar ett kombinerat datum -och tidsvärde som inte inkluderar sekunder , datetime , som lagrar värdet med en noggrannhet på upp till 0,00333 sekunder , och datetime2 med en precision på 100 nanosekunder .
Använda DateDiff
DateDiff kan du returnera antalet gränserna för en viss typ som inträffar mellan två datum . Tillgängliga intervall , eller gränser , för att söka omfatta år , kvartal , månad , dag , vecka , timme , minut , sekund och mer . Formatet på DateDiff funktionen är DateDiff ( ' gräns ' , Startdatum , Slutdatum ) . Gränsen är DatumDel du kommer att kontrollera , bland valen ovan . Många förkortningar kan användas för dessa dateparts . Den startdatum och EndDate kan vara valfri giltig uttryck eller variabel som utvärderas till ett legititmate datum eller data tid typ .
Jämföra med Between
För att kontrollera om en infaller efter ett visst datum , och innan ett datum , kan du använda MELLAN uttalande . Detta är användbart i en fråga för att få alla objekt i en viss tidsperiod. Du kan till exempel använda den i WHERE klausulen att dra alla evenemang som händer i januari , enligt nedan :
SELECT eventid , eventDate från EventsWHERE eventDate mellan '01 /01 /2011 ' OCH '01 /31 /2011 '
Övriga datum Jämförelser
vill jämföra två datum , kan du också använda större än , mindre än , eller lika operatörer i dina där uttalandena . För att hitta alla objekt med ett datum före den 1 januari 2011, skulle du använda : SELECT * FROM [ tabell ] WHERE datum < '01 /01 /2011 ' . Samma logik gäller för större än och lika jämförelser . Jämföra datum med hjälp av denna metod gör står för tidsvärden lagras i ett datatypen datetime , så om du vill ha allt före middagstid på ett visst datum , se till att inkludera det i partiet efter jämförelsen tecken .