sql >> Databáze >  >> RDS >> Sqlserver

CURRENT_TIMESTAMP Příklady v SQL Server (T-SQL)

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       |
+----------+


  1. Existuje způsob, jak použít ARRAY v Entity Framework + PostgreSql

  2. Jak mohu zadat heslo pro 'psql' neinteraktivně?

  3. SQL SELECT AVG

  4. Jak nastavit maximální dobu provádění pro dotaz mysql?