CURRENT_TIMESTAMP
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.
Tato funkce je ekvivalentem ANSI SQL k T-SQL GETDATE()
funkci, takže můžete použít kteroukoli z nich. Všimněte si, že obě funkce mají nižší rozsah dat a nižší výchozí zlomkovou přesnost než T-SQL SYSDATETIME()
funkce (která vrací datetime2(7) hodnota).
Tento článek obsahuje příklady CURRENT_TIMESTAMP
funkce, včetně toho, jak ji můžete použít s jinými funkcemi k vrácení hodnoty, která vás zajímá.
Syntaxe
Syntaxe vypadá takto:
CURRENT_TIMESTAMP
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 CURRENT_TIMESTAMP
:
SELECT CURRENT_TIMESTAMP AS Result;
Výsledek:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
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, CURRENT_TIMESTAMP) AS Result;
Výsledek:
+----------+ | Result | |----------| | 6 | +----------+
Zde je další příklad pomocí MONTH()
funkce. Výsledek je stejný.
SELECT MONTH(CURRENT_TIMESTAMP) 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, CURRENT_TIMESTAMP) 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(CURRENT_TIMESTAMP, 'd', 'en-US') AS 'd, en-US', FORMAT(CURRENT_TIMESTAMP, 'd', 'en-gb') AS 'd, en-gb', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-US') AS 'D, en-US', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-gb') AS 'D, en-gb';
Výsledek:
+------------+------------+-------------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-------------------------+--------------| | 6/16/2018 | 16/06/2018 | Saturday, June 16, 2018 | 16 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 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Výsledek:
+----------+ | Result | |----------| | 30 | +----------+