Qual è la funzione CURRENT_DATE o valore della data corrente per SQL Server?

Qual è la funzionalità di SQL Server che ti consente di ottenere la data corrente come un tipo DATE come SQL Funzionalità “s CURRENT_DATE standard. Qual è la <current date value function> per SQL Server?

Utilizzando PostgreSQL, sto cercando per qualcosa del tipo,

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

Risposta

Puoi utilizzare uno dei due GETDATE (tipo di ritorno datetime ) o SYSDATETIME (tipo di ritorno datetime2 ), con la differenza che è la precisione fino a nanosecondi per SYSDATETIME().

Esempio :

SELECT GETDATE() fn_GetDate, SYSDATETIME() fn_SysDateTime 

Risultati:

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

Vedi Tipi di dati e funzioni di data e ora (Transact-SQL) nella documentazione del prodotto.


Per completezza, SQL Server riconosce anche CURRENT_DATE come indicato nella domanda, come funzione scalare ODBC :

SELECT {fn CURRENT_DATE()}; 

Questo restituisce varchar(10), quindi sarebbe necessario un cast esplicito o una conversione in date tipo di dati:

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

Il built- nelle funzioni sono consigliate rispetto alle funzioni scalari ODBC.

Rispondi

CAST (... to date) con GETDATE() o SYSDATETIME()

Il modo migliore è

SELECT CAST( GETDATE() AS date ); 

Per estensione in SQL Server, puoi trasmettere SYSDATETIME() fino ad oggi,

SELECT CAST( SYSDATETIME() AS date ); 

I documenti su SYSDATETIME (Transact-SQL) mostra altri esempi,

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 */ 

Potrebbero esserci vantaggi CAST (GETDATE() AS date), poiché restituisce in modo nativo meno precisione.

Commenti

  • Questo è il modo in cui lho sempre fatto, anche se se stai trasmettendo a DATE, importa se il tempo di input ha una precisione al nanosecondo?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *