Diferencia en Conversi贸n de Fecha a Double en SQL Server.


27 de Septiembre del 2016

Cordial Saludo;

Me gustaría saber si alguien me puede dar una explicación del porque la diferencia en estos resultados.

Deseo  almacenar una fecha y hora como un valor numérico, por lo que ejecuto la sentencia de SQL Server

SELECT CAST(CONVERT(DATETIME,SYSDATETIME(),103) AS FLOAT)

 

Y tengo como resultado para el día 27 de septiembre de 2016 a las 14:36 el número

42638.6085907407

Si  este último número lo uso en la sentencia

SELECT CONVERT(datetime,42638.6085907407,103)

 

Obtengo como resultado la fecha y hora inicial

 

2016-09-27 14:36:22.237

 

Sin embargo si tomo ese número y lo copio en Excel y cambio el formato de la celda a Fecha, obtengo como fecha el 25 de septiembre y no el 27;

 

Desde una aplicación en Visual Basic 6.0 conectada a SQL Server se crean y actualizan registros asignando como fecha la sentencia CDbl(Now) para convertir la fecha en un doublé.

 

Rgto!Mp_Sol_Fec = CDbl(Now), 4)

 

Pero al consultar los registros  y convertirlos a fecha  obtengo fechas dos días posteriores a la fecha real, es decir 29 de septiembre.

El valor numérico generado por VB 6.0 sin embargo al ser copiado en una celda de Excell si refleja la fecha correcta del 27 de Sep.

Entonces el problema de la diferencia en estas fechas está en SQL Server?

Alquilen por favor tiene idea de que pasa ?



18 de Marzo del 2021

¿Por que pasa?, Por no utilizar los TIPOS DE DATOS correspondientes, si ya sabes cuantos días de diferencia te da y quieres resolverlo desde tu aplicativo, aplicale un DATEADD