Il CURRENT_TIMESTAMP
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.
Questa funzione è ANSI SQL equivalente a T-SQL GETDATE()
funzione, così puoi usare quello che preferisci. Si noti che entrambe le funzioni hanno un intervallo di date inferiore e una precisione frazionaria predefinita inferiore rispetto a T-SQL SYSDATETIME()
funzione (che restituisce un datetime2(7) valore).
Questo articolo fornisce esempi di CURRENT_TIMESTAMP
funzione, incluso come puoi usarlo con altre funzioni per restituire il valore che ti interessa.
Sintassi
La sintassi è questa:
CURRENT_TIMESTAMP
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 CURRENT_TIMESTAMP
:
SELECT CURRENT_TIMESTAMP AS Result;
Risultato:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
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, CURRENT_TIMESTAMP) AS Result;
Risultato:
+----------+ | Result | |----------| | 6 | +----------+
Ecco un altro esempio che utilizza MONTH()
funzione. Il risultato è lo stesso.
SELECT MONTH(CURRENT_TIMESTAMP) 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, CURRENT_TIMESTAMP) 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(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';
Risultato:
+------------+------------+-------------------------+--------------+ | 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 | +------------+------------+-------------------------+--------------+
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 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Risultato:
+----------+ | Result | |----------| | 30 | +----------+