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

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

SYSDATETIME() funkce vrátí aktuální datum a čas jako datetime2(7) 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 SYSDATETIME() 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:

SYSDATETIME ( )

Takže tato funkce ve skutečnosti nepřijímá žádné argumenty. Jednoduše to zavoláte bez jakýchkoli argumentů.

Příklad

Zde je základní příklad použití SELECT příkaz vrátit aktuální datum a čas z SYSDATETIME() :

SELECT SYSDATETIME() AS Result;

Výsledek:

+-----------------------------+
| Result                      |
|-----------------------------|
| 2018-06-15 23:09:13.5852199 |
+-----------------------------+

Jak již bylo zmíněno, vrací datetime2(7) hodnota. datetime2 datový typ má větší časové období a větší výchozí zlomkovou přesnost než datetime datový typ (což je datový typ, který GETDATE() vrací – viz SYSDATETIME() vs GETDATE():Jaký je rozdíl?).

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, SYSDATETIME()) 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(SYSDATETIME()) AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| 6        |
+----------+

Obě tyto funkce vrátily aktuální měsíc. Ale vrátili 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, SYSDATETIME()) 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(SYSDATETIME(), 'd', 'en-US') AS 'd, en-US',
    FORMAT(SYSDATETIME(), 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(SYSDATETIME(), 'D', 'en-US') AS 'D, en-US',
    FORMAT(SYSDATETIME(), '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 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| 30       |
+----------+


  1. listagg data do použitelného formátu?

  2. Proč se učit Cassandru s Hadoopem?

  3. Jak použít SqlCommand k VYTVOŘENÍ DATABÁZE s parametrizovaným názvem db?

  4. 7 způsobů, jak vrátit všechny tabulky s primárním klíčem na SQL Server