Foros del Web » Programando para Internet » PHP »

como hacer una consulta (año,mes,dia)en un campo datetime

Estas en el tema de como hacer una consulta (año,mes,dia)en un campo datetime en el foro de PHP en Foros del Web. hola de nuevo camaradas tengo una duda quiero hacer una consulta dependiendo de la fecha que se digite pero el campo esta con propiedad datetime ...
  #1 (permalink)  
Antiguo 07/12/2010, 15:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
como hacer una consulta (año,mes,dia)en un campo datetime

hola de nuevo camaradas tengo una duda quiero hacer una consulta dependiendo de la fecha que se digite pero el campo esta con propiedad datetime es obio que si se digita una fecha comun por ejemplo 2010-12-08 jamas me arojara resultado por que en mi tabla esta asi 2010-12-01 08:30:00 por que el campo tiene date time bueno ustedes me diran cambia el tipo de campo a date y evitate dolores de cabeza el problema es que esa tabla donde se encuentra el campo de tipo date time lo ocupa una agenda prediseñada y si le muevo a date no me guardaria la hora etc etc. entonces mi pregunta es como puedo hacer una consulta a esa tabla omitiendo la hora y sus minutos y que nada mas me quede la pura fecha
  #2 (permalink)  
Antiguo 07/12/2010, 16:01
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

Compara para que este entre 2010-12-01 00:00:00 y 2010-12-01 23:59:59 (no recuerdo si es 24h el formato).
  #3 (permalink)  
Antiguo 07/12/2010, 17:16
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

como comparar amigo no entiendo??? osea yo lo que quiero hacer es una consulta de una fecha por ejemplo "2010-12-08" esta fecha ok pero en mi tabla tengo un campo que es de tipo date time por lo tanto si yo consulto esa fecha jamas me arojara nada por que no estoy consultando la hora tambien y solo estoy tomando la fecha
  #4 (permalink)  
Antiguo 07/12/2010, 17:24
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

por eso, a lo que se refiere areslepra es que hagas la consulta de modo que te busque los registros que esten entre 2010-12-01 00:00:00 y 2010-12-01 23:59:59 de ese modo encontraras los registros de ese dia sin importar la hora.
  #5 (permalink)  
Antiguo 07/12/2010, 17:27
 
Fecha de Ingreso: diciembre-2010
Ubicación: Rosario, Santa Fe
Mensajes: 326
Antigüedad: 13 años, 4 meses
Puntos: 13
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

La cosa sería algo así:

SELECT * FROM tabla WHERE fecha >= '2010-12-01 00:00:00' and fecha <= '2010-12-01 23:59:59';
  #6 (permalink)  
Antiguo 07/12/2010, 17:35
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

aok creo que entendii miren yo tengo esta consulta
Código PHP:
conectar();
$reporte=mysql_query("select * FROM reporte  WHERE DATE_FORMAT(fecha,'%Y-%m-%d') BETWEEN '$ini' AND '$fin' and asistio='1' "); 
desconectar(); 
en donde $ini pues viene siendo una fecha de inicio y $fin una fecha final obiamente verdad bueno como ven yo jalo los datos de la tabla reporte en la cual mi campo fecha es de tipo date ok pero ahora lo que yo quiero hacer es jalar tambien de otra tabla que se llama jcalendar los registros que esten dados de alata entre esas dos fechas que se digiten , de aqui surge mi problema ya que el campo fecha de mi tabla jcalendar esta con datetime , como quedaria mi consulta si deceo consultar de las dos tablas el campo fecha tomando en cuenta que ambos campos tiene propiedad diferente osea el de la tabla reporte el campo fecha es de tipo date y el de la tabla jcalendar es de tipo datetime
  #7 (permalink)  
Antiguo 07/12/2010, 17:43
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

si vas a usar el formato año-mes-dia no es necesario usar el date_format, ese te lo colocaba en el post anterior que colocabas una duda similar xq el formato era d/m/año pero el formato normal de mysql es año-mes-dia por lo que tu consulta quedaria bien sin el date_format saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 07/12/2010, 17:49
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

$busqueda=2010;

SELECT * FROM tabla WHERE fecha LIKE '$busqueda%'

Suerte
__________________
Mono programando!
twitter.com/eguimariano
  #9 (permalink)  
Antiguo 07/12/2010, 17:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

aok amigo carlos_belisario muchas gracias porcierto gracias por la ayuda de ese dia gracias ati ise lo de los rangos de fecha ,aunque ahora me meti en otro problemon
  #10 (permalink)  
Antiguo 07/12/2010, 17:53
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

Cita:
Iniciado por zero_cool_firewall Ver Mensaje
aok amigo carlos_belisario muchas gracias porcierto gracias por la ayuda de ese dia gracias ati ise lo de los rangos de fecha ,aunque ahora me meti en otro problemon
con lo que te pase no necesitas modificar nada ¬¬ usa LIKE cuando solo tenes algunos datos del campo que necesitas.... usa el simbolo "%" adelante o atras por ejemplo. %10 = 2010 o 20% = 2010 cosas como esas... o
%10% = 2010-10-03
__________________
Mono programando!
twitter.com/eguimariano
  #11 (permalink)  
Antiguo 07/12/2010, 17:53
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

jaja bueno los que nos metemos en este mundo de la programacion vivimos en eso metiendonos en problemones pero lo bueno de eso es que cuando salimos de eso tenemos una enseñansa asaludos y cualquier duda siempre hay gente dispuesta a ayudar suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 07/12/2010, 17:57
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

Cita:
Iniciado por SirDuque Ver Mensaje
con lo que te pase no necesitas modificar nada ¬¬ usa LIKE cuando solo tenes algunos datos del campo que necesitas.... usa el simbolo "%" adelante o atras por ejemplo. %10 = 2010 o 20% = 2010 cosas como esas... o
%10% = 2010-10-03
el problema de usar el LIKE en consultas de fecha es que si el esta buscando el mes 10 coloca LIKE '%10%' y tienes 2010-01-10 esta concordaria con y traeria esa fecha aunque sea del mes 01 por eso normalmente segun lei cuando se quiere consultar algun mes, año o dia en especifico se usa date_format saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 07/12/2010, 17:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

Cita:
Iniciado por SirDuque Ver Mensaje
con lo que te pase no necesitas modificar nada ¬¬ usa LIKE cuando solo tenes algunos datos del campo que necesitas.... usa el simbolo "%" adelante o atras por ejemplo. %10 = 2010 o 20% = 2010 cosas como esas... o
%10% = 2010-10-03
oie amigo pero el like es para buscar conincidencias no es asi? y yo no quiero conincidencias yo lo que deceo es ejemplo se digita una fecha de inicio la cual es 2010-12-18 y una fecha fina 2010-12-38 ok como yo estoy buscando por rango me arojara los reportes que se encuentren entre esas dos fechas eso me lo hace muy bien pero si ahora necesito jalar datos de otra tabla el cual el campo fecha esta como datetime si me entiendes
  #14 (permalink)  
Antiguo 07/12/2010, 18:12
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

intente hacerle asi como mi busqueda es por rango de fechas osea una inicial y una final la de inicio y final tiene lo siguiente
$ini= "2010-12-08"."00:00:00";
$fin= "2010-12-08"."23:59:59";
y la consulta es esta
Código PHP:
conectar();
$reporte=mysql_query("select * FROM reporte  WHERE fecha BETWEEN '$ini' AND '$fin' and asistio='1' "); 
desconectar(); 
aqui solamente me esta buscando en la tabla reporte pero no me muestra nada en mi tabla reporte el campo fecha es de tipo date y en la tabla jcalendar el campo fecha es de tipo datetime entonces creo que es obio que no me muestre nada ya que estoy consultando a un campo que es de tipo date ok pero por ejemplo si uno las dos tablas la que tiene el campo date y la que tiene el campo date time pienso yo que nada mas me mostrar los resultados dela tabla jcalendar?? no ? ya que el formato de las variables de incio y final van enfocadas ala tabla con campo date time entonces por lo tanto nunca me mostrar los resultados de la tabla reporte ya que su formato es de tipo date
  #15 (permalink)  
Antiguo 07/12/2010, 18:40
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

pues estas haciendo una consulta datetime no date como es tu tabla, la solucion:
decide si los datos en la tabla van a ser de tipo datetime o si van a ser date y time por separado en dos campos y dependiendo de esto haces la consulta de manera que corresponda saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #16 (permalink)  
Antiguo 07/12/2010, 18:50
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

ok sabes a mi tabla reporte le puse el campo fecha como datetime si para no complicarme la existencia , ahora mi duda es como unir mis dos tablas para que las fecha de inicio y fecha final busque resultados en ambas tablas si me explico obiamente pariendo de la consulta que ya tengo la que me ayudaste hacer ese dia
  #17 (permalink)  
Antiguo 07/12/2010, 19:02
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

pues la pregunta obvia que se te tiene que hacer los dos campos son datetime?? si es asi solo relacionalos, si uno es datetime y el otro date usa date_format para compararar el datetime como si fuera date nose si me explique bien xq tiendo a enredar las cosas cuando intento explicar algo
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #18 (permalink)  
Antiguo 07/12/2010, 19:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

no no amigo creo que no me entendiste yo lo que quiero hacer es esto mira el usuario digita la fecha de inicio y fecha final para buscar los registros ok las cuales son las siguientes
$ini=2010-12-01 00:00:00
$fin=2010-12-01 23:59:59

ahora lo que yo deceo hacer es buscar estas dos fechas en dos tablas diferentes ok osea donde coincidan las fechas introducidas si me explico como le puedo hacer partiendo de esta consulta
Código PHP:
conectar();
$reporte=mysql_query("select * FROM reporte   WHERE fecha   BETWEEN '$ini' AND '$fin'  "); 
desconectar(); 
  #19 (permalink)  
Antiguo 07/12/2010, 19:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

si lo puedes hacer has la consulta de las dos tablas imagino que tienes la relacion ya establecida entre ellas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #20 (permalink)  
Antiguo 07/12/2010, 19:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

sii las tengo relacionadas atra ves del id del paciente mi pregunta es como quedda esa consulta? osea unir la tabla jcalendar con la tabla reportes
  #21 (permalink)  
Antiguo 07/12/2010, 19:20
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

bueno entonces lo que te queda es hacer la prueba y cualquier error que te de nos lo comentas has una consulta de las dos tablas e indicas el campo relacion eso por lo que he visto lo mas seguro es que lo sepas hacer suerte
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #22 (permalink)  
Antiguo 07/12/2010, 23:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 55
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: como hacer una consulta (año,mes,dia)en un campo datetime

hola amigo carlos_belisario de nuevo gracias ya resolvi mi problema no use un join para unir las tablas lo que ise fue como en ambas tablas tengo el id del paciente y en ambas tengo la misma fecha entonces mejor ise 2 consultas una que en la primera se buscara la fecha y otra que validara el id del paciente que se encuentra en la tabla jcalendar si era igual ala que estava en la tabla reporte entonces mostraba los resultados de la tabla reporte aqui esta mi codigo bueno parte de el muchas gracias amigo carlos_belisario por la ayuda vere aqui pueddo ayudar tengo un rato libre
Código PHP:
$ini=$ano."-".$mes."-".$dia." ""00:00:00";
 
$fin=$ano2."-".$mes2."-".$dia2." ""23:59:59";

conectar();

$jcalendar=mysql_query("select * FROM jqcalendar  WHERE StartTime   BETWEEN '$ini' AND '$fin' AND asistencia='1' GROUP BY Subject "); 

desconectar();
while (
$rowj=mysql_fetch_array($jcalendar))
{
conectar();
  
$reporte=mysql_query("select * FROM reporte  WHERE ficha='$aa'  and codigo='$bb'  "); 
  
desconectar();
while (
$row=mysql_fetch_array($reporte))
{
echo 
$resultados de la tabla reporte
}//cierro el while de reporte
      
}//while del jcalendar 

obiamente me sirvio lo que me dijo areslepra el agregarle los minutos ala variables que estaba recogiendo tambien se te agradece mi amigo

Etiquetas: datetime, campos
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 22:39.