Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Date Time !!

Estas en el tema de Date Time !! en el foro de SQL Server en Foros del Web. saludos compañeros.. kisiera pedirles un favor, tng una tabla fecha de cumpleaños y kisiera sakar a los que faltan cumplir años y a los que ...
  #1 (permalink)  
Antiguo 27/02/2010, 22:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 117
Antigüedad: 14 años, 2 meses
Puntos: 0
Sonrisa Date Time !!

saludos compañeros.. kisiera pedirles un favor,
tng una tabla fecha de cumpleaños y kisiera sakar a los que faltan cumplir años y a los que ya cumplieron ..utilizando la fecha actual..

agradeceria su ayuda .. gracias !
  #2 (permalink)  
Antiguo 28/02/2010, 08:50
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Date Time !!

Para los que faltan cumplir años la condicion debe ser asi: WHERE fecha > getdate()
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 28/02/2010, 13:45
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Date Time !!

Cita:
Iniciado por Vega19 Ver Mensaje
saludos compañeros.. kisiera pedirles un favor,
tng una tabla fecha de cumpleaños y kisiera sakar a los que faltan cumplir años y a los que ya cumplieron ..utilizando la fecha actual..

agradeceria su ayuda .. gracias !
Hola vega
con respecto a la rpta anterior hizo que fecha sea menor a fecha_actual GETDATE, Ya que todos los años cumplimos años la mejor rpta seria quizas esta:
Código SQL:
Ver original
  1. SELECT
  2.    Nombre,
  3.    Fecha,
  4.    DateName(mm,Fecha) AS Mes ,
  5.    CASE WHEN MONTH(fecha)<=MONTH(getdate()) AND DAY(fecha)<=DAY(getdate())
  6.     THEN 'Ya cumplio años'
  7.     ELSE 'se acerca' END AS Condicion
  8.          FROM Aniversarios
  9.          ORDER BY MONTH(fecha),DAY(fecha)
Para este ejemplo cree una tabla ANIVERSARIO con solo 2 campos(NOMBRE, FECHA) y saque una consulta con 4 columnas y la ultima que se llama condicion es calculada usando CASE.

www.bitxense.com.pe | Soluciones Informaticas S.A.C. - [email protected]
Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo [email protected] Lima-Peru
  #4 (permalink)  
Antiguo 28/02/2010, 16:03
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: Date Time !!

Cita:
case when month(fecha)<=month(getdate()) AND day(fecha)<=day(getdate())
T3rryMan
Estás cometiendo un error de lógica clásico. Al comparar por separado los meses y los días, te olvidas que un día mayor que el día actual puede pertenecer a una fecha menor. El 1 de junio sigue siendo mayor que el 31 de enero. No debes compararlos por separado. El resultado correcto puedes obtenerlo con:

Código SQL:
Ver original
  1. CASE
  2. WHEN RIGHT(CONVERT(VARCHAR(8), td.dt, 112), 4) <=
  3. RIGHT(CONVERT(VARCHAR(8), getdate(), 112), 4) THEN ...
  4.  
  5. --O usando las funciones que originalmente consideraste
  6. CASE
  7. WHEN (MONTH(fecha) * 100) + DAY(fecha) <=
  8. (MONTH(getdate()) * 100) + DAY(getdate()) THEN ...

Saludos.

Etiquetas: date, time
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:29.