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

DATEDIFF en la mierda del MYSQL

Estas en el tema de DATEDIFF en la mierda del MYSQL en el foro de Bases de Datos General en Foros del Web. Si, ya sé que por aqui hay mucho defensor a ultranza del MYSQL (Para mi una auténtica porquería en cuanto a lenguaje SQL se refiere). ...
  #1 (permalink)  
Antiguo 17/10/2004, 11:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 21 años
Puntos: 1
DATEDIFF en la mierda del MYSQL

Si, ya sé que por aqui hay mucho defensor a ultranza del MYSQL (Para mi una auténtica porquería en cuanto a lenguaje SQL se refiere).

El problema de hoy es con el DATEDIFF

Esta función que es común para practicamente todos los meguajes de programación, en la porquería esta del MYSQL (Lo que tiene uno que tragar cuando no tiene dinero para pagarse un Oracle o un SQL en condiciones), aqui no tengo cojones a hacerlo funcionar. (Sin contar que su Manual online (http://dev.mysql.com/doc/mysql/en/Da...functions.html) esta cortado con el mismo patrón que todo lo que atañe a este tipo de base datos: Excaso y pésimo).

bueno, disculpad mi cabreo, pero es que el MYSQL no hace más que darme guerra...

El problema:

Con Visual Basic o SQL cuando quieres sacar una diferencia de campos o valores de tiempo se utiliza el famoso DATEDIFF que MySQL incorporó a sus funciones. Bien, en SQL uno puede hacer algo como esto:

fecha_comparada = "DATEDIFF(day, getdate(), finfecha)"

donde day es el formato o periodo de tiempo con el que contabilizará la diferencia de tiempos, getdate() la fecha actual y finfecha la variable (En mi caso es un campo de una base de datos) contra la que comparará.

Esto que es de una simpleza absoluta, no tengo huevos a hacer que me funcione en el MYSQL, es que no le entra ni a palos...

Y desde luego su manual online no me aclara nada.

Por favor si hay algún amante y experto en MySQL que me tenga un poco de paciencia y me ayude con esta simpleza le agradeceré en esta y en mi próxima reencarnación...

Gracias y disculpad el cabreo!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #2 (permalink)  
Antiguo 17/10/2004, 22:30
 
Fecha de Ingreso: enero-2003
Mensajes: 243
Antigüedad: 21 años, 9 meses
Puntos: 0
con esto no te funciona?

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31

Cuidado con la version de MySQL... (DATEDIFF() was added in MySQL 4.1.1.)
Y sino se podria calcular la fecha desde visual y utilizarla en MySQL...

Saludos!
__________________
I'm Windows.
  #3 (permalink)  
Antiguo 18/10/2004, 02:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 353
Antigüedad: 21 años
Puntos: 1
hola windows, ese es el ejemplo que pone en su manual MySQL online, pero ahí estás trabajando con valores fijos. Gracias de todoas formas.

Ya lo solucioné, he tenido que generar una variable nueva sacando el resultado con una función en Visual Basic (ASP) y posteriormente integrar ese resultado en la sentencia SQL para que funcione. (Es de juzgado de guardia, un código que funciona con SQL, Oracle y hasta la mierda del Access y en el MySQL no sirve).

He visto mierdas a lo largo de mi vida profesional, pero sinceramente lo del MySQL me tiene alucinando, es cierto que las consultas las efectua con una rapidez expectacular, sin que le importe si hay 2 o 200.000 registros por tabla, pero sinceramente, su forma tan peculiar de programación no compensa, la putada es que es lo que montan todos los proveedores de Hosting, por ser gratis...

Que triste es ser pobre y dormir solo!!
__________________
Lo menos frecuente en este mundo es vivir. La mayoría de la gente existe, eso es todo...
  #4 (permalink)  
Antiguo 18/10/2004, 14:01
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 21 años, 1 mes
Puntos: 11
select datediff(curdate(),campo_fecha) from tabla where ....

la version de mysql debe ser 4.1.1 o superior.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 15:28.