none
function DATEDIFF-- no lo entiendo...?? RRS feed

  • Pregunta

  • Hola..se que el dateiff me permite restar fechas y poder sacar en catidad de dias, meses, años, horas  entre dos parametros de fechas.

    Pra el caso de como saber si el pedido a u cliente llego tiempo ¿no se si esta funcion esta bien?
    Lo que no entiendo es por ejemplo: esta funccion DATEDIFF("day",ShippedDate,RequiredDate) >= 0 ? "S" : "N"

    si mI fecha de envio es el 03/02/2009 y la fecha que requiero es el 02/02/2009 "resultado en dias: 1"
    y este resultado seria S... ENTONCES SERIA SI ESPERO ESPERO EL CLIENTE.....VERDAD?

    Pero mi fecha de envio es 03/02/2009 y la fecha que requirio el cliente es 03/02/2009 el resultado seria 0
    y este resultado seria S.. entonces SERIA QUE SI ESPERO EL CLIENTE....?

    TOTAL CUANDO ES NO........

    SE que para algunas es una pregunta muy boba.. pero... sorry recien empiezo... 
    seria de mucha.. ayudaaaaaaaaaaaaaaa que me expolicaran.. chicos que nno entiendo...
    gracias

      
     
    jueves, 11 de junio de 2009 4:51

Respuestas

  • Hola.

    Datediff es la diferencia en la unidad que elijas (en este caso días) entre la "fecha desde" (2º parámetro) y la "fecha hasta" (3er parámetro). Te paso el link con la definiciónen las msdn: http://msdn.microsoft.com/es-es/library/ms139927.aspx.

    Si la fecha del 2º parámetro es mayor que la del último parámetro, entonces, dará un valor negativo.

    En cuanto a lo de restar, no sé muy bien a qué te refieres, pero me temo que estás interpretando los parámetros segundo y tercero al revés de como la función los entiende.

    Alberto López Grande. 
    • Marcado como respuesta mayde jueves, 11 de junio de 2009 16:41
    jueves, 11 de junio de 2009 16:28
    Moderador

Todas las respuestas


  • pergunta corregida:
    Hola..se que el dateiff me permite restar fechas y poder sacar en catidad de dias, meses, años, horas  entre dos parametros de fechas.

    Pra el caso de como saber si el pedido a u cliente llego tiempo ¿no entiendo esta funcion?
    Lo que no entiendo es por ejemplo: esta funccion DATEDIFF("day",ShippedDate,RequiredDate) >= 0 ? "S" : "N"

    si mI fecha de envio es el 03/02/2009 y la fecha que requiero es el 02/02/2009 "resultado en dias: 1"
    y este resultado seria S... ENTONCES SERIA SI El pedido llego a tiempo..?????????

    Pero mi fecha de envio es 03/02/2009 y la fecha que requirio el cliente es 03/02/2009 el resultado seria 0
    y este resultado seria S.. entonces SERIA QUE SI El pedido llego a tiempo..?????????


    TOTAL CUANDO ES NO........

    SE que para algunas es una pregunta muy boba.. pero... sorry recien empiezo... 
    seria de mucha.. ayudaaaaaaaaaaaaaaa que me expolicaran.. chicos que nno entiendo...
    gracias
    jueves, 11 de junio de 2009 4:56
  • Hola

    Dejame analizar tu logica

    1.-Cuando SELECT DATEDIFF(DD,'02/03/2009','02/03/2009') = 0 (cero) para tu logica seria "S"

    2.-Cuando SELECT DATEDIFF(DD,'02/02/2009','02/03/2009') = 1 para tu logica tambian daria como resultado "S"  ¿ POR QUE ?

    Por que 0 (cero) y 1 cumple con tu condicion de >= 0 (cero).

    Creo que deberias poner tu prueba condicional con un OR, algo asi:

    IF SELECT DATEDIFF(DD,'02/03/2009','02/03/2009') = 0
    OR SELECT DATEDIFF(DD,'02/02/2009','02/03/2009') = 1 THEN
       "S"
    ELSE
       "N"
    
    
    El dominio de tu funcion esta en relacion de los parametros de la funcion logica.

    Saludos
    Bitnius


    Programador en VB.NET 2008, SQL SERVER 2008, Crystal Report 2008 Si la respuesta es correcta, marcála como correcta. También puedes votar como útil si te sirvió.
    • Propuesto como respuesta Bitnius jueves, 11 de junio de 2009 5:59
    jueves, 11 de junio de 2009 5:58
  • Hola.

    Esa sintaxis parece de Integration Services. Si es así, DATEDIFF("day",ShippedDate,RequiredDate) >= 0 ? "S" : "N" da como resultado "N" para el primer caso (shipped día 3, required día 2, resultado, no llegó a tiempo, llegó tarde), porque  sale -1. Para el otro caso (misma fecha), sale 0, debería dar "S". Si no es así, nos dices.

    Alberto López Grande.
    jueves, 11 de junio de 2009 7:25
    Moderador
  • diusculpa ,, pero porque menos 1..... en el primer caso
    r????????????????

    jueves, 11 de junio de 2009 11:17
  • como rsto??? creo que no lo estoy restando bien....
    jueves, 11 de junio de 2009 11:24
  • Hola.

    Datediff es la diferencia en la unidad que elijas (en este caso días) entre la "fecha desde" (2º parámetro) y la "fecha hasta" (3er parámetro). Te paso el link con la definiciónen las msdn: http://msdn.microsoft.com/es-es/library/ms139927.aspx.

    Si la fecha del 2º parámetro es mayor que la del último parámetro, entonces, dará un valor negativo.

    En cuanto a lo de restar, no sé muy bien a qué te refieres, pero me temo que estás interpretando los parámetros segundo y tercero al revés de como la función los entiende.

    Alberto López Grande. 
    • Marcado como respuesta mayde jueves, 11 de junio de 2009 16:41
    jueves, 11 de junio de 2009 16:28
    Moderador
  • muichimas gracias Alberto
    jueves, 11 de junio de 2009 16:41