sql >> Base de Datos >  >> RDS >> Sqlserver

Ejemplos de GETDATE() en SQL Server (T-SQL)

El GETDATE() la función devuelve la fecha y la hora actuales como datetime valor. Este valor se deriva del sistema operativo de la computadora en la que se ejecuta la instancia de SQL Server.

Este artículo proporciona ejemplos de GETDATE() función, incluido cómo puede usarla con otras funciones para devolver el valor que le interesa.

Sintaxis

Primero, aquí está la sintaxis:

GETDATE ( )

Así que simplemente llame a esta función sin ningún argumento.

Ejemplo

Aquí hay un ejemplo básico del uso de un SELECT declaración para devolver la fecha y hora actual de GETDATE() :

SELECT GETDATE() AS Result;

Resultado:

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

Entonces, como se mencionó, devuelve una fecha y hora valor. Si desea un valor con más precisión fraccionaria de segundos, use SYSDATETIME() en cambio. Esa función devuelve un datetime2 valor.

Extraer una parte de la fecha

Si solo desea una parte del valor devuelto, puede usar DATEPART() para devolver solo la parte de la fecha/hora que le interesa.

Ejemplo:

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

Resultado:

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

A veces hay más de una forma de obtener el mismo resultado en SQL Server. Aquí hay otro ejemplo usando MONTH() función:

SELECT MONTH(GETDATE()) AS Result;

Resultado:

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

Ambas funciones devuelven el mes actual. Pero los devuelven como un número entero que representa el número del mes.

Si quieres el mes nombre devuelto en su lugar, puede usar DATENAME() :

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

Resultado:

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

Dar formato a la fecha

También puede usar otras funciones de T-SQL para formatear la fecha según sea necesario.

Aquí hay un ejemplo del uso de FORMAT() función para formatear el resultado:

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

Resultado:

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

Más ejemplos en Cómo formatear la fecha y la hora en SQL Server.

Incrementar el valor y encontrar la diferencia

Puede usar funciones como DATEDIFF() para devolver la diferencia entre la fecha actual y otra fecha.

Aquí hay un ejemplo del uso de DATEADD() para agregar un mes a la fecha actual y luego encontrar la diferencia en días:

DECLARE @date1 datetime2 = GETDATE();
DECLARE @date2 datetime2 = DATEADD(month, 1, GETDATE());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Resultado:

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