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

Problema con SELECT en clausula WHERE

Estas en el tema de Problema con SELECT en clausula WHERE en el foro de Mysql en Foros del Web. Hola a todos, Tengo esta consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT dexec , mensaxe , usuarios FROM conmen WHERE dexec = "SELECT DATE ...
  #1 (permalink)  
Antiguo 11/07/2011, 06:33
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Problema con SELECT en clausula WHERE

Hola a todos,

Tengo esta consulta:

Código MySQL:
Ver original
  1. SELECT dexec, mensaxe, usuarios FROM conmen WHERE dexec="SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y')";

que en teoría me tendría que buscar dexec, mensaxe, usuarios en donde dexec sea la fecha de hoy en formato español.

En cambio, probando esta consulta;
Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y');

Me devuelve: 11/07/2011

¿Qué me puede fallar en la primera consulta?
En la base de datos, hay varios registros en donde dexec es igual a '17/07/2011'
Graciass
  #2 (permalink)  
Antiguo 11/07/2011, 06:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con SELECT en clausula WHERE

No tengo ni idea de dónde puedes haber visto que una subconsulta va entre comillas. Van entre paréntesis.
Código MySQL:
Ver original
  1. SELECT dexec, mensaxe, usuarios
  2. FROM conmen
  3. WHERE dexec= (SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y'));
Además, no necesitas una subconsulta para eso.
Código MySQL:
Ver original
  1. SELECT dexec, mensaxe, usuarios
  2. FROM conmen
  3. WHERE dexec= DATE_FORMAT(CURDATE(), '%d/%m/%Y');

Pregunta: ¿Por qué guardas dexec como cadena de texto en lugar de DATE? Eso es un error...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/07/2011, 06:57
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema con SELECT en clausula WHERE

Perfecto, ya me funciona. Gracias

Lo de dexec, lo tengo como varchar, para que los usuarios cuando escriban una fecha, permita insertar la fecha en formato español. Porque lo tenía como date, y me la insertaba así: 2011/07/11 o algo así era.
  #4 (permalink)  
Antiguo 11/07/2011, 07: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: 17 años
Puntos: 2658
Respuesta: Problema con SELECT en clausula WHERE

Esas cosas se manejan en las consultas, no en el tipo de columna.
Si en un formulario el usuario te pone una fecha en formato español, simplemente luego usas la función adecuada del lenguaje para darle el formato esperado en la base. No "parchas" la base para ajustarla a los usuarios sino que administras lo que los usuarios ponen para guardar lo que debe guardarse. El usuario no se enterará jamás, porque él sólo ve lo que aparece en el formulario.

Hacerlo de otra forma lo único que te dará son problemas cuando tengas que hacer consultas (además de desperdiciar espacio de almacenamiento).
__________________
¿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: clausula, registros, select
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 07:27.