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

CURRENT_TIMESTAMP Esempi in SQL Server (T-SQL)

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