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

SYSDATETIME() Ejemplos en SQL Server (T-SQL)

El SYSDATETIME() la función devuelve la fecha y la hora actuales como datetime2(7) 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 SYSDATETIME() función, incluido cómo puede usarla con otras funciones para devolver el valor que le interesa.

Sintaxis

Primero, aquí está la sintaxis:

SYSDATETIME ( )

Entonces, esta función en realidad no acepta ningún argumento. Simplemente llámalo sin ningún argumento.

Ejemplo

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

SELECT SYSDATETIME() AS Result;

Resultado:

+-----------------------------+
| Result                      |
|-----------------------------|
| 2018-06-15 23:09:13.5852199 |
+-----------------------------+

Entonces, como se mencionó, devuelve un datetime2(7) valor. La fechahora2 el tipo de datos tiene un intervalo de fechas mayor y una precisión fraccionaria predeterminada mayor que datetime tipo de datos (que es el tipo de datos que GETDATE() devoluciones – ver SYSDATETIME() vs GETDATE():¿Cuál es la diferencia?).

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, SYSDATETIME()) 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(SYSDATETIME()) AS Result;

Resultado:

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

Ambas funciones devolvieron el mes actual. Pero los devolvieron 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, SYSDATETIME()) 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(SYSDATETIME(), 'd', 'en-US') AS 'd, en-US',
    FORMAT(SYSDATETIME(), 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(SYSDATETIME(), 'D', 'en-US') AS 'D, en-US',
    FORMAT(SYSDATETIME(), '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 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Resultado:

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