Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SYSDATETIME() Esempi in SQL Server (T-SQL)

Il SYSDATETIME() la funzione restituisce la data e l'ora correnti come datetime2(7) valore. Questo valore deriva dal sistema operativo del computer su cui è in esecuzione l'istanza di SQL Server.

Questo articolo fornisce esempi di SYSDATETIME() funzione, incluso come puoi usarlo con altre funzioni per restituire il valore che ti interessa.

Sintassi

Innanzitutto, ecco la sintassi:

SYSDATETIME ( )

Quindi questa funzione in realtà non accetta alcun argomento. Lo chiami semplicemente senza argomenti.

Esempio

Ecco un esempio di base dell'utilizzo di un SELECT istruzione per restituire la data e l'ora correnti da SYSDATETIME() :

SELECT SYSDATETIME() AS Risultato;

Risultato:

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

Quindi, come accennato, restituisce un datetime2(7) valore. La dataora2 il tipo di dati ha un intervallo di date più ampio e una precisione frazionaria predefinita maggiore rispetto a datetime tipo di dati (che è il tipo di dati che GETDATE() restituisce – vedi SYSDATETIME() vs GETDATE():qual è la differenza?).

Estrarre una parte della data

Se desideri solo una parte del valore restituito, puoi utilizzare DATEPART() per restituire solo la parte della data/ora che ti interessa.

Esempio:

SELECT DATEPART(month, SYSDATETIME()) AS Risultato;

Risultato:

+----------+| Risultato ||----------|| 6 |+----------+

A volte c'è più di un modo per ottenere lo stesso risultato in SQL Server. Ecco un altro esempio che utilizza MONTH() funzione:

SELEZIONARE MESE(SYSDATETIME()) COME Risultato;

Risultato:

+----------+| Risultato ||----------|| 6 |+----------+

Entrambe queste funzioni hanno restituito il mese corrente. Ma li hanno restituiti come un numero intero che rappresenta il numero del mese.

Se vuoi il nome del mese restituito invece, puoi usare DATENAME() :

SELECT DATENAME(month, SYSDATETIME()) AS Risultato;

Risultato:

+----------+| Risultato ||----------|| giugno |+----------+

Formatta la data

Puoi anche utilizzare altre funzioni T-SQL per formattare la data come richiesto.

Ecco un esempio di utilizzo di FORMAT() funzione per formattare il risultato:

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';

Risultato:

+------------+------------+-------------------- ---+---------------+| d, en-USA | d, it-gb | D, it-USA | D, it-gb ||-------------+----------------- ------+---------------|| 15/06/2018 | 15/06/2018 | venerdì 15 giugno 2018 | 15 giugno 2018 |+------------+------------+------------------- ----+---------------+

Altri esempi in Come formattare la data e l'ora in SQL Server.

Aumentare il valore e trovare la differenza

Puoi usare funzioni come DATEDIFF() per restituire la differenza tra la data corrente e un'altra data.

Ecco un esempio di utilizzo di DATEADD() per aggiungere un mese alla data corrente, scoprendo poi la differenza in giorni:

DECLARE @date1 datetime2 =SYSDATETIME();DECLARE @date2 datetime2 =DATEADD(mese, 1, SYSDATETIME());SELECT DATEDIFF(day, @date1, @date2) AS Risultato;

Risultato:

+----------+| Risultato ||----------|| 30 |+----------+