CURRENT_DATE (Transact-SQL)

Si applica a: Sql Server 2025 (17.x) DatabaseSQL di Azure Istanza gestita di SQL di Azurein Microsoft Fabric

La CURRENT_DATE funzione Transact-SQL (T-SQL) restituisce la data corrente del sistema di database come valore di data , senza l'offset di ora e fuso orario del database. CURRENT_DATEquesto valore deriva dal sistema operativo sottostante su cui gira il motore di database.

Nota

SYSDATETIME e SYSUTCDATE hanno una precisione maggiore, misurata in base alla precisione in secondi frazionari, rispetto a GETDATE e a GETUTCDATE. La funzione SYSDATETIMEOFFSET include la differenza di fuso orario di sistema. È possibile assegnare SYSDATETIME, SYSUTCDATETIME e SYSDATETIMEOFFSET a una variabile di uno qualsiasi dei tipi di data e ora.

Questa funzione è l'equivalente DI ANSI SQL a CAST(GETDATE() AS DATE). Per altre informazioni, vedere GETDATE.

Nota

database SQL di Azure e SQL Database in Microsoft Fabric supportano la modifica del fuso orario predefinito da tempo coordinato universale (UTC). Se modifichi il fuso orario a livello di database o sessione , questa funzione restituisce l'ora locale in base al valore del fuso orario configurato. Per maggiori informazioni, vedi ALTER DATABASE SCOPED CONFIGURATIONFUSOSET ORARIO.

Vedere Funzioni e tipi di dati di data e ora per una panoramica di tutti i tipi di dati e le funzioni di data e ora Transact-SQL.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

CURRENT_DATE

Argomenti

Questa funzione non accetta argomenti

Tipi restituiti

date

Osservazioni:

Le istruzioni Transact-SQL possono fare riferimento a CURRENT_DATE qualsiasi punto in cui possano fare riferimento a un'espressione di data .

CURRENT_DATE è una funzione non deterministica. Non è possibile indicizzare viste ed espressioni che fanno riferimento a questa colonna.

Esempi

Questi esempi usano le funzioni di sistema che restituiscono valori di data e ora correnti, per restituire la data, l'ora o entrambe. Gli esempi restituiscono i valori in serie. Pertanto, i secondi frazionari potrebbero essere diversi. I valori effettivi restituiti riflettono il giorno/ora effettivo dell'esecuzione.

R. Ottenere la data e l'ora di sistema correnti

SELECT SYSDATETIME(),
       SYSDATETIMEOFFSET(),
       SYSUTCDATETIME(),
       CURRENT_TIMESTAMP,
       GETDATE(),
       GETUTCDATE(),
       CURRENT_DATE;

Il set di risultati è il seguente.

SYSDATETIME()        2026-09-01 16:15:37.7418724
SYSDATETIMEOFFSET()  2026-09-01 16:15:37.7418724 -06:00
SYSUTCDATETIME()     2026-09-01 22:15:37.7418724
CURRENT_TIMESTAMP    2026-09-01 16:15:37.740
GETDATE()            2026-09-01 16:15:37.740
GETUTCDATE()         2026-09-01 22:15:37.740
CURRENT_DATE         2026-09-01

B. Ottenere la data di sistema corrente

Nell'esempio seguente viene illustrato come convertire i valori di data e ora nel tipo di dati date .

SELECT CONVERT (DATE, SYSDATETIME()),
       CONVERT (DATE, SYSDATETIMEOFFSET()),
       CONVERT (DATE, SYSUTCDATETIME()),
       CONVERT (DATE, CURRENT_TIMESTAMP),
       CONVERT (DATE, GETDATE()),
       CONVERT (DATE, GETUTCDATE()),
       CURRENT_DATE;

Il set di risultati è il seguente.

SYSDATETIME()        2026-09-01
SYSDATETIMEOFFSET()  2026-09-01
SYSUTCDATETIME()     2026-09-01
CURRENT_TIMESTAMP    2026-09-01
GETDATE()            2026-09-01
GETUTCDATE()         2026-09-01
CURRENT_DATE         2026-09-01