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

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

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

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

Sintassi

Innanzitutto, ecco la sintassi:

GETDATE ( )

Quindi chiami semplicemente questa funzione senza alcun argomento.

Esempio

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

SELECT GETDATE() AS Result;

Risultato:

+-------------------------+
| Result                  |
|-------------------------|
| 2018-06-15 23:54:42.013 |
+-------------------------+

Quindi, come accennato, restituisce un datetime valore. Se vuoi un valore con più secondi di precisione frazionaria, usa SYSDATETIME() invece. Quella funzione restituisce un datetime2 valore.

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

Risultato:

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

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

SELECT MONTH(GETDATE()) AS Result;

Risultato:

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

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

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

SELECT DATENAME(month, GETDATE()) AS Result;

Risultato:

+----------+
| Result   |
|----------|
| June     |
+----------+

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

Risultato:

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

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 = GETDATE();
DECLARE @date2 datetime2 = DATEADD(month, 1, GETDATE());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Risultato:

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