Hva er funksjonen CURRENT_DATE eller gjeldende dato for SQL Server?

Hva er SQL Server-funksjonaliteten som lar deg få gjeldende dato som en DATE -type som SQL Standard «s CURRENT_DATE -funksjon. Hva er <current date value function> for SQL Server?

Ved å bruke PostgreSQL ser jeg for noe sånt som,

SELECT CURRENT_DATE; current_date -------------- 2018-06-27 (1 row) 

Svar

Du kan bruke enten GETDATE (returtype datetime ) eller SYSDATETIME (returtype datetime2 ), med forskjellen på presisjonen opp til nanosekunder for SYSDATETIME().

Eksempel :

SELECT GETDATE() fn_GetDate, SYSDATETIME() fn_SysDateTime 

Resultater:

 fn_GetDate fn_SysDateTime 2018-06-27 10:31:18.963 2018-06-27 10:31:18.9659170

Se Datatyper og funksjoner for dato og klokkeslett (Transact-SQL) i produktdokumentasjonen.


For fullstendighet gjenkjenner SQL Server også CURRENT_DATE som nevnt i spørsmålet, som en ODBC skalarfunksjon :

SELECT {fn CURRENT_DATE()}; 

Dette returnerer varchar(10), så trenger en eksplisitt rollebesetning eller konvertering til date datatype:

SELECT CONVERT(date, {fn CURRENT_DATE()}); 

Den innebygde i funksjoner anbefales over ODBC-skalære funksjoner.

Svar

CAST (... to date) med GETDATE() eller SYSDATETIME()

Den beste måten er

SELECT CAST( GETDATE() AS date ); 

Ved utvidelse i SQL Server kan du kaste SYSDATETIME() til dags dato,

SELECT CAST( SYSDATETIME() AS date ); 

Dokumentene på SYSDATETIME (Transact-SQL) viser noen flere eksempler,

SELECT CONVERT (date, SYSDATETIME()) ,CONVERT (date, SYSDATETIMEOFFSET()) ,CONVERT (date, SYSUTCDATETIME()) ,CONVERT (date, CURRENT_TIMESTAMP) ,CONVERT (date, GETDATE()) ,CONVERT (date, GETUTCDATE()); /* All returned 2007-04-30 */ 

Det kan være fordeler CAST (GETDATE() AS date), som gir naturlig mindre presisjon.

Kommentarer

  • Slik har jeg alltid gjort det, selv om du støper to DATE, spiller det noen rolle om inngangstiden har presisjon til nanosekundet?

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *