es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , ,

Answer

  1. Avatar for 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.

Comments are closed.