Co je funkce CURRENT_DATE nebo aktuální hodnota data pro SQL Server?

Co je to funkce serveru SQL, která vám umožňuje získat aktuální datum jako typ DATE jako SQL Standardní funkce CURRENT_DATE. Co je <current date value function> pro SQL Server?

Pomocí PostgreSQL hledám pro něco jako,

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

odpověď

Můžete použít buď GETDATE (návratový typ datetime ) nebo SYSDATETIME (návratový typ datetime2 ), přičemž rozdílem je přesnost až nanosekund SYSDATETIME().

Příklad :

SELECT GETDATE() fn_GetDate, SYSDATETIME() fn_SysDateTime 

Výsledky:

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

Viz Datové typy a funkce data a času (Transact-SQL) v dokumentaci k produktu.


Pro úplnost SQL Server také rozpoznává CURRENT_DATE jak je uvedeno v otázce, jako skalární funkce ODBC :

SELECT {fn CURRENT_DATE()}; 

Tím se vrátí varchar(10), takže bude potřeba explicitní obsazení nebo převod na date datový typ:

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

Vestavěný- ve funkcích se doporučuje přes skalární funkce ODBC.

Odpovědět

CAST (... to date) s GETDATE() nebo SYSDATETIME()

Nejlepší způsob je

SELECT CAST( GETDATE() AS date ); 

Díky rozšíření na serveru SQL Server můžete do dnešního dne seslat SYSDATETIME(),

SELECT CAST( SYSDATETIME() AS date ); 

Dokumenty na SYSDATETIME (Transact-SQL) zobrazit několik dalších příkladů,

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

Mohou existovat výhody CAST (GETDATE() AS date), protože nativně vrací menší přesnost.

Komentáře

  • To je způsob, jakým jsem to vždy dělal, i když, pokud sesíláte do DATA, nezáleží na tom, jestli má vstupní čas přesnost na nanosekundu?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *