GETDATE() funkce vrátí aktuální datum a čas jako datetime hodnota. Tato hodnota je odvozena od operačního systému počítače, na kterém běží instance SQL Server.
Tento článek obsahuje příklady GETDATE() funkce, včetně toho, jak ji můžete použít s jinými funkcemi k vrácení hodnoty, která vás zajímá.
Syntaxe
Nejprve je zde syntaxe:
GETDATE ( )
Tuto funkci tedy jednoduše zavoláte bez argumentů.
Příklad
Zde je základní příklad použití SELECT příkaz vrátit aktuální datum a čas z GETDATE() :
SELECT GETDATE() AS Result;
Výsledek:
+-------------------------+ | Result | |-------------------------| | 2018-06-15 23:54:42.013 | +-------------------------+
Jak již bylo zmíněno, vrací datetime hodnota. Pokud chcete hodnotu s více sekundami zlomkové přesnosti, použijte SYSDATETIME() namísto. Tato funkce vrací datetime2 hodnotu.
Extrahujte část data
Pokud chcete pouze část vrácené hodnoty, můžete použít DATEPART() vrátit pouze tu část data/času, která vás zajímá.
Příklad:
SELECT DATEPART(month, GETDATE()) AS Result;
Výsledek:
+----------+ | Result | |----------| | 6 | +----------+
Někdy existuje více než jeden způsob, jak získat stejný výsledek na serveru SQL. Zde je další příklad pomocí MONTH() funkce:
SELECT MONTH(GETDATE()) AS Result;
Výsledek:
+----------+ | Result | |----------| | 6 | +----------+
Obě tyto funkce vrátí aktuální měsíc. Ale vrátí je jako celé číslo představující číslo měsíce.
Pokud chcete měsíc název místo toho můžete použít DATENAME() :
SELECT DATENAME(month, GETDATE()) AS Result;
Výsledek:
+----------+ | Result | |----------| | June | +----------+
Formátovat datum
Můžete také použít další funkce T-SQL k formátování data podle potřeby.
Zde je příklad použití FORMAT() funkce pro formátování výsledku:
SELECT
FORMAT(GETDATE(), 'd', 'en-US') AS 'd, en-US',
FORMAT(GETDATE(), 'd', 'en-gb') AS 'd, en-gb',
FORMAT(GETDATE(), 'D', 'en-US') AS 'D, en-US',
FORMAT(GETDATE(), 'D', 'en-gb') AS 'D, en-gb'; Výsledek:
+------------+------------+-----------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-----------------------+--------------| | 6/15/2018 | 15/06/2018 | Friday, June 15, 2018 | 15 June 2018 | +------------+------------+-----------------------+--------------+
Další příklady naleznete v tématu Jak formátovat datum a čas na serveru SQL.
Zvýšení hodnoty a nalezení rozdílu
Můžete použít funkce jako DATEDIFF() vrátit rozdíl mezi aktuálním datem a jiným datem.
Zde je příklad použití DATEADD() přidat měsíc k aktuálnímu datu a poté zjistit rozdíl ve dnech:
DECLARE @date1 datetime2 = GETDATE(); DECLARE @date2 datetime2 = DATEADD(month, 1, GETDATE()); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Výsledek:
+----------+ | Result | |----------| | 30 | +----------+