CURRENT_DATE (Transact-SQL)

Se aplica a: SQL Server 2025 (17.x) Base de datos SQL de Azure SQL Database deAzure SQL Managed Instanceen Microsoft Fabric

La CURRENT_DATE función Transact-SQL (T-SQL) devuelve la fecha actual del sistema de base de datos como valor de fecha , sin el desplazamiento de hora y zona horaria de la base de datos. CURRENT_DATEderiva este valor del sistema operativo subyacente en el que se ejecuta el Motor de base de datos.

Nota:

SYSDATETIME y SYSUTCDATE tienen más precisión, de acuerdo con la medición de la precisión de las fracciones de segundo, que GETDATE y GETUTCDATE. La función SYSDATETIMEOFFSET incluye el ajuste de zona horaria del sistema. Puede asignar SYSDATETIME, SYSUTCDATETIME y SYSDATETIMEOFFSET a una variable de cualquiera de los tipos de fecha y hora.

Esta función es el equivalente de ANSI SQL a CAST(GETDATE() AS DATE). Para obtener más información, vea GETDATE.

Nota:

Azure SQL Database y SQL Database en Microsoft Fabric permiten cambiar la zona horaria predeterminada desde la hora coordinada universal (UTC). Si modificas la zona horaria a nivel de base de datos o sesión , esta función devuelve la hora local basada en el valor configurado de la zona horaria. Para más información, consulta ALTER DATABASE SCOPED CONFIGURATIONZONASET HORARIA.

Consulte Tipos y funciones de datos de fecha y hora para obtener información general sobre todos los tipos de datos y funciones de fecha y hora de Transact-SQL.

Convenciones de sintaxis de Transact-SQL

Sintaxis

CURRENT_DATE

Argumentos

Esta función no toma ningún argumento.

Tipos de valores devueltos

date

Comentarios

Las instrucciones Transact-SQL pueden hacer referencia a CURRENT_DATE cualquier lugar donde puedan hacer referencia a una expresión de fecha .

CURRENT_DATE es una función no determinista. Las vistas y expresiones que hacen referencia a esta columna no se pueden indexar.

Ejemplos

En estos ejemplos se usan las funciones del sistema que devuelven valores de fecha y hora actuales para devolver la fecha, la hora o ambas. Los ejemplos devuelven los valores en series, por lo que sus fracciones de segundo podrían diferir. Los valores reales devueltos reflejan el día y hora reales de ejecución.

A Obtener la fecha y hora actuales del sistema

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

Este es el conjunto de resultados.

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. Obtener la fecha actual del sistema

En el ejemplo siguiente se muestra cómo convertir valores de fecha y hora al tipo de datos date .

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

Este es el conjunto de resultados.

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