Skip to Content
Author's profile photo Former Member

Operaciones entre Fechas

Buenos Días Consultores

Si me pueden colaborar con la siguiente funciones, necesito recuperar información entre campos de fechas

1. El tiempo transcurrido entre el campo de fecha de contabilización (T0.[DocDate]) y el campo de fecha de pago (T0.[U_FPresen]) utilize la siguiente función

DATEDIFF(day,T0.[DocDate],T0.[U_FPresen] ) AS ‘Duration’ , pero si no tengo ningún valor en el campo de fecha de pago debe recuperarme la cantidad de días hasta la fecha de hoy.

2. El tiempo transcurrido entre el campo de fecha de contabilización (T0.[DocDate]) y el campo de fecha de entrega (T0.[U_FEnt]) utilize la siguiente función

SELECT T0.[DocDate], T0.[U_FEnt],

CASE 

        WHEN (DATEDIFF (day, T0.[DocDate],ISNULL(T0.[U_FEnt])))

         ELSE 

                  THEN ‘No Entregada’

END ‘Fecha’

pero si no tengo ningún valor en el campo de fecha de entrega debe decir ” No Entregada”.

Agradezco mucho por su cooperación.

Saludos

Carlos Ortega

Assigned Tags

      5 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Estimado, prueba con la siguiente:

      SELECT T0.[DocDate], T0.[U_FPresen],

      CASE 

              WHEN T0.[U_FPresen] IS NULL THEN DATEDIFF(day,T0.[DocDate],GETDATE())

              ELSE DATEDIFF(day,T0.[DocDate],T0.[U_FPresen])

      END 'Dias'

      FROM ORCT T0

      Slds.

      Author's profile photo Former Member
      Former Member

      Para el segundo punto prueba lo siguiente:

      SELECT T0.[DocDate], T0.[U_FEnt],

      CASE 

              WHEN T0.[U_FEnt] IS NULL THEN 'No Entregada'

              ELSE DATEDIFF(day,T0.[DocDate],T0.[U_FEnt])

      END 'Dias'

      FROM ORCT T0

      Slds.

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Gracias Francisco por su colaboración este esta es la sentencia que arme de acuerdo al aporte :

      SELECT T0.[DocDate], T0.[U_FEnt],

      CASE 

              WHEN T0.[U_FEnt] IS NULL THEN 'No Entregada'

              ELSE DATEDIFF(day,T0.[DocDate],T0.[U_FEnt])

      END 'Dias'

      FROM OINV T0 WHERE T0.[DocNum] ='216222'

      Pero al momento de ejecutarla me envia el siguiente mensaje :

      Conversion failed when converting the varchar value 'No Entregada' to data type int.

      Saludos

      Carlos Ortega

      Author's profile photo Former Member
      Former Member

      Intenta con lo siguiente:

      SELECT T0.[DocDate], T0.[U_FEnt],

      CASE 

              WHEN T0.[U_FEnt] IS NULL THEN 'No Entregada'

              ELSE CONVERT(NVARCHAR(4),DATEDIFF(day,T0.[DocDate],T0.[U_FEnt]))

      END 'Dias'

      FROM OINV T0 WHERE T0.[DocNum] ='216222'

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      Gracias Francisco

      Me Funciono, un 10 para usted.