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

YEAR y MONTH ok.. ¿por qué DAY no?

Estas en el tema de YEAR y MONTH ok.. ¿por qué DAY no? en el foro de Bases de Datos General en Foros del Web. Saludos: Intentaba (aún lo intento ) hacer una consulta en MySQL que me muestre los registro del día... para eso hice mi query de esta ...
  #1 (permalink)  
Antiguo 20/02/2005, 07:45
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
YEAR y MONTH ok.. ¿por qué DAY no?

Saludos:

Intentaba (aún lo intento ) hacer una consulta en MySQL que me muestre los registro del día... para eso hice mi query de esta forma:
Código:
SELECT * FROM tabla WHERE DAY(columna) = DAY(NOW())
... error:
Código:
Call to undefined function msql_error()
¿Por qué??? lo he probado con YEAR, MONTH incluso con DAYOFWEEK y todo jala perfecto... ... simplemente no hayo explicación.
Mi columnaes tipo DATETIME. Ojalá alguien me explique.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #2 (permalink)  
Antiguo 26/03/2005, 17:21
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... ha pasado un mes y aún no le hayo.. me atrevo a insistir.

He leído artículos... cito uno de www.mysql-hispano.org:
Cita:
Iniciado por MySQL Hispano
- YEAR(), MONTH(), DAY() extraen de una fecha el año, el mes y día correspondientes. Ejemplo:

SELECT MONTH(‘2005-4-1’); produce 4, el número del mes.
... y funciona perfecto.. pero sobre ese mismo ejemplo, solo cambiando MONTH por DAY... nada de nada ... ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 28/03/2005, 06:16
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
Te diré que me pasa lo mismo que a tí con la función day() y he probado con dayofmonth(), que en el manual pone que son sinónimas, y si me funciona.
¿Por qué falla day() y no month()?, pues ni idea, pero hay alternativa, que es lo que importa para seguir avanzando.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #4 (permalink)  
Antiguo 28/03/2005, 06:17
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
Acabo de ver el por qué: DAY() está disponible desde la versión 4.1.1 de mysql.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #5 (permalink)  
Antiguo 28/03/2005, 06:27
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
... pero trabajo con la versión 4.1.9 ... qué cosas!!.. No conocia DAYOFMONTH()... como dices... sirve para seguir avanzando. Mil gracias!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 28/03/2005 a las 06:29
  #6 (permalink)  
Antiguo 28/03/2005, 06:35
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
¿Tienes la 4.1.9 y no te funciona?, eso ya me descoloca.
La versión de mysql que yo uso es la 4.0.17, por eso no me va. En tu caso ya no sé que decirte. Otra forma de obter el mes sería utilizando DATE_FORMAT para que sólo muestre el mes.
En fin, que otras maneras de hacerlo hay, sólo es cuestión de ver cual interesa más.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #7 (permalink)  
Antiguo 28/03/2005, 06:50
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Pues de hecho esa fue mi solución... sacar con DATE_FORMAT(fecha,'%d') el día (recuerda que es el día) y posteriormente compararlas con PHP... la verdad ni se me pasó por la mente hacer esta comparación utilizando DATE_FORMAT con puro SQL .. pero no creo que funcione o sí?? ya me tocará probar... ... pero os juro! 4.1.9 es lo que tengo .

Gracias por tu atención
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 02/05/2005, 11:53
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 0
Información Uno que se pone a lo mismo

Hola!
Aprovecho vuestro post parahaceros unas preguntillas, como ya a pasado un año, supongo que ya lo lelbareis al dedillo, no?

la pregunta es:
- YEAR(), MONTH(), DAY() se usan desde SQL, es decir al hacer el select, pero a mi me interesaria desde php, entonces:

DATE_FORMAT(fecha,'%d') saca el dia? se puede sacar mes año, y hora tambien con ella? y se usa en PHP?

me podriais poner un ejemplillo, para sacar de un datetime (por ejemplo $diahora) el dia, mes año y la hora?
__________________
Share our Knowledge!
Adura Vita!

Última edición por Pazosele; 02/05/2005 a las 11:55 Razón: mas info
  #9 (permalink)  
Antiguo 03/05/2005, 03:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
SQL, el lenguaje que usan las Base de Datos es totalmente independiente de lo que puedas hacer con PHP ó cualquier otro lenguaje.
Cita:
YEAR(), MONTH(), DAY() se usan desde SQL, es decir al hacer el select, pero a mi me interesaria desde php
Podrías manejar todo desde PHP extrayendo tu campo DATETIME con su formato original (YYY-MM-DD hh:mm:ss) y haciendo explode()'s, comparaciones y demás para manipular tu resultado y darle formato ó ocuparlo para lo que quieras... no está mal en escencia, pero podría estar mejor; SQL tiene muchas funciones que podrás emplear y que al hacerlo harás más eficiente tu sistema pués dichas funciones te dan un mejor rendimiento ya que fueron pensadas para hacer eso... y no solo con el manejo de fechas, aunque es de lo más ocupado.

La verdad es que las posibilidades son muchas... yo anteriormente hice un "DATE_FORMAT(fecha,'%d')" porque solo iba a ocupar el día en PHP... hiba a hacer una comparación... ni recuerdo para qué ... Todo dependerá de lo que quieras hacer...

Por ejemplo, por lo que sugieres, supongamos que a mi me intereza manejar la fecha y la hora por separado... además de que quiero darle a la fecha un formato "más entendible"... se me ocurre una sentencia algo así:
Código:
SELECT DATE_FORMAT(campo_fecha, '%d de %M de %Y') AS fecha, RIGHT(campo_fecha, 8) AS hora FROM tabla
Primero doy un formato a un campo_fecha de la forma "día de mes de año" y creo una etiqueta "fecha". Posteriormente extraigo con los 8 carácteres más a la derecha del mismo campo_fecha que significarán la hora (hh:mm:ss)... ya que esta no requiere que le modifique el formato y se lo asigno a una etiqueta "hora".... entonces ya en PHP podré simplemente hacer algo como:
Código PHP:
echo "Fecha: ".$fecha['fecha']."<br>"// Fecha: dd de Mes de aaaa
echo "Hora: ".$fecha['hora']; // Hora: hh:mm:ss 
Solo supuse el hecho que queria manejar la fecha y hora por separado, pude extraer todo junto... ve que es más sencillo que separar, ordenar y demás.. y ve que no necesitas dos campos para manejar la fecha y hora por separados... las opciones son muchas y el resultado es eficiencia...

Te aconsejo leas el artículo que cité: http://www.mysql-hispano.org/page.php?id=31&pag=6 ... Ve que ya hay "problemas resueltos" que te serán muy útiliez...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 03/05/2005 a las 03:43
  #10 (permalink)  
Antiguo 03/05/2005, 07:36
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta

YEAR(), MONTH(), DAYOFMONTH() estoy probando con esto pero despues de hacer el select, donde se guarda el mes y eso?
Código PHP:
$dadesfch=mssql_query("SELECT month(Fechastart) FROM tabla WHERE IdA=$id",$servidor);
 while(
$row mssql_fetch_array($dadesfch)) { 
 
$messtart=$row["Fechastart"];    /////////no se komo cojer el valor despues..
 

y si kisiera cojer varios valores a la vez, day, month año, hora y minutos, como tendria que hacer la sentencia? o tengo que hacerlas por separado??
__________________
Share our Knowledge!
Adura Vita!
  #11 (permalink)  
Antiguo 03/05/2005, 07:43
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 0
Vale ! me habia dejado el AS
Muchas gracoais JAM!!!!!
__________________
Share our Knowledge!
Adura Vita!
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 23:08.