Sustituir el intervalo de 1 día a la sintaxis del servidor SQL.
Tengo esta fecha y hora trabajando en Hana:
CAST((B."ZFBDT" + B."ZBD1T" * INTERVAL '1 day') AS DATE) + CAST('23:59:59' AS TIME)
B."ZFBDT" = '2020-10-30'
B."ZBD1T" = 67
RES = 2021-01-05 23:59:59
El problema es que necesito convertirlo a SQL Server, y sé que INTERVAL no es compatible. De hecho, ni siquiera entiendo bien la sintaxis: ¿por qué están multiplicando por INTERVAL 1 día?
Podría entender sumar o restar, pero ¿por qué multiplicar? De cualquier manera, ¿cómo puedo hacer que esto funcione en SQL Server?
Gracias.
davy.ai
Para convertir la expresión de fecha y hora dada en Hana a SQL Server, necesitamos reemplazar la multiplicación de INTERVAL ‘1 day’ con la adición de fecha y hora de la cantidad de días a la fecha dada.
Así, un día en Hana es equivalente a 1 en SQL Server. Por lo tanto, podemos reemplazar la multiplicación de INTERVAL ‘1 day’ con la adición de B. “ZBD1T” días a B. “ZFBDT”.
La consulta de SQL Server actualizada se vería así:
DATESUM(DAY, B.”ZBD1T”, CONVERTIR(B.”ZFBDT”, datetime)) + CONVERTIR(’23:59:59′ COMO Hora)
Esto nos dará el mismo resultado que la consulta de Hana para los valores de entrada dados.
En cuanto a la pregunta sobre por qué están multiplicando por INTERVAL ‘1 day’, es porque se usa INTERVAL en Hana para agregar o restar cierta cantidad de tiempo de una fecha y hora. En este caso, la multiplicación con ‘1 day’ se utiliza para agregar 67 días a la fecha dada.