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

Consulta con CONVERT()

Estas en el tema de Consulta con CONVERT() en el foro de Bases de Datos General en Foros del Web. Hola a todos. Estoy tratando de hace una consulta sql a mi BD, en ella tengo una columna que es tipo DATETIME. mi consulta es ...
  #1 (permalink)  
Antiguo 10/05/2011, 21:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 36
Antigüedad: 12 años, 10 meses
Puntos: 0
Consulta con CONVERT()

Hola a todos.

Estoy tratando de hace una consulta sql a mi BD, en ella tengo una columna que es tipo DATETIME. mi consulta es algo asi. pero no me resulta. nose que estara mal :S

Código:
$queAlu = mysql_query("SELECT * FROM apunte p INNER JOIN asignatura a ON p.asignatura_idasignatura = a.idasignatura WHERE alumno_rut = '$rut' and p.asignatura_idasignatura = '$idramo' CONVERT(varchar, fecha, 103)");

.
Quiero pasar la fecha del tipo yyyy-mm-dd --> dd-mm-yyyy

Saludos.

PD: ese punto lo puse para que se viera bien el codigo :D
  #2 (permalink)  
Antiguo 11/05/2011, 06:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta con CONVERT()

El problema es que salvo algunas funciones genéricas como DATE(), MONT(), SUM(), AVG(), etc., no existen funciones estandarizadas entre diferentes DBMS. Lo que estás pretendiendo usar pertenece a SQL Server, pero no a MySQL, Postgre u Oracle.
Cuando tengas que usar funciones te recomiendo enfáticamente leer el manual de referencia del DBMS que uses. En MySQL, CONVERT() se usa para manipular cadenas que tienen diferentes charset, no para convertir datos. Para eso existe CAST(), pero tampoco esa es la que buscas.
Además, la sintaxis en sí de la consulta está mal escrita porque estás usando esa función el el WHERE sin relacionarla con ninguna condición lógica.
Por otro lado, el único sentido que tendría convertir una fecha en una cadena de la forma "dd/mm/aaaa" sería si el valor del campo contra el cual se compara fuese un campo VARCHAR con ese contenido.


Código MySQL:
Ver original
  1.       apunte p INNER JOIN asignatura a ON p.asignatura_idasignatura = a.idasignatura
  2.       alumno_rut = '$rut' AND p.asignatura_idasignatura = '$idramo' AND
  3.       DATE_FORMAT(fecha, '%d-%m-%Y') = ?????
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: convert, bases-de-datos
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 11:16.