lunes, 2 de noviembre de 2020

¿Cómo funciona la función YEAR() en el SQL Server?

Hay muchas funciones diferentes relacionadas con la fecha y hora disponibles en SQL Server, como DAY, MONTH, YEAR, DATEDIFF, etc. .Por ejemplo, la función YEAR se puede utilizar para extraer el valor del año de una fecha, como en el siguiente ejemplo:

DECLARE @TRANSACTION_DATE DATETIME
SET @TRANSACTION_DATE=’2020-11-02 15:20:30′
SELECT YEAR(@TRANSACTION_DATE) AS TRANSACTION_YEAR

Pero ahora surge algo interesante, que pasa si ejecutamos la siguiente sentencia:

SELECT YEAR(555660/20) AS YEAR_VALUE

¿Por qué el resultado es el siguiente?




Resulta que SQL Server es compatible con el sistema de fechas que parten de1900, es decir cuando ingresa una fecha, la fecha se convierte en un número de serie que representa el número de días transcurridos desde el 1 de enero de 1900.
Entonces, si estamos haciendo la consulta SELECT YEAR(555660/20), estamos escribiendo SELECT YEAR(27783), sin embargo, el 27783 los toma como días a partir del 1 de enero de 1900, lo que equivale a la fecha 25/01/1976, y si a esta fecha se le extrae el año queda solo 1976 de allí el porqué del resultado.



No hay comentarios:

Publicar un comentario