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?