Hola:
existe alguna forma de guardar en MySQL meiante PHP las fechas con el formato d/m/Y
Saludos.
| ||||
Cita: Hola Reynier ante que todo un cordial saludo, te cuento yo he usado lo que dices para insertar la fecha en una tabla en mysql y pues no resulta o mejor dicho no la ingres aya que mysql trabaja la fecha año/mes/dia si mal no recuerdo y por esta manera no guarda nada en la tabla.
Iniciado por Reynier Pues puedes hacerlo de esta forma: Código PHP: Para presentar en tu pagina dia/mes/año debe aplicar separar la fecha y luego acomodarla para mostrarla como quieres en tu pagina. Suerte y Salu2. Bye
__________________ Atte. Mohamed :aplauso: |
| |||
La solucion que entrega Reynier funciona si el camo 'fecha' es del tipo VARCHAR, si usa un campo del tipo DATE tienes que respetar el formato que permite MySQL: yyyy-mm-dd o yyy:mm:dd En ese caso lo que tienes que hacer es al momento de recojer la fecha desde la base de datos es descomponerla y rearmarla al formato que necesites.
__________________ El conocimiento es libre: Movimiento por la Devolución |
| ||||
Pues ... Sip disculpen, debía haber comenzado por explicar lo del formato del campo de la tabla. La cosa es como dice frijolerou. Para usarlo de esa forma lo que podrías hacer es poner el campo de tu tabla de tipo VARCHAR. Ahora si lo tienes en formato DATE la consulta podrías hacerla de esta forma: Código PHP: Código PHP:
__________________ Ing. Reynier Pérez Mira |
| ||||
... para no abrir un nuevo tema: Ya he preguntado ésto en el foro de Base de datos pero no hay respuesta. Quiero poner por defecto en mi tabla la función NOW() en un campo tipo DATE... (para no tener que crear la query), según yo ya lo hice alguna vez... con phpMyAdmin, claro pero ahora no me resulta. Ahora veo que reiner pone dos casos distintons para lso campos tipo DATE y DATETIME... ¿no aplica la función NOW() para un campo tipo DATE???... CURDATE() guarda mi fecha del servidor?...
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
Para DATE debes usar CURDATE() para que te de la fecha actual del servidor MySQL. Para DATETIME usas NOW(), que te da la fecha y la hora del servidor MySQL. En tu campo de tipo DATE para dejar que coloque la fecha por defecto automaticamente, accede a ese campo desde phpmyadmin, y en la ocion "DEFAULT" coloca la funcion correspondiente, CURDATE(). Asi no necesitas insertarla desde el query.
__________________ El conocimiento es libre: Movimiento por la Devolución |
| ||||
gracias pero... como verás, después de efectuar "el cambio" y apesar de decirme que se logró... el campo fecha sigue dandome 0000-00-00 y no el CURDATE()... Por eso pregunto por la query correcta, quizá sea phpMyAdmin quien "este mal" (dos veces seguidas 'fecha'?? ). Por cierto utilizo la versión 2.6.1 rc2... > > >> Para quienes no vean la imagen << < <
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" Última edición por jam1138; 24/01/2005 a las 05:21 Razón: no me mostraba la imagen |
| |||
Hola amigos. Yo hago todo lo que indicais en este post.. pero nada de nada.. no se me guarda automaticamente la fecha de ninguna manera.. ¿que are mal? tengo que cambiar algo o nose.. o es que no se guarda automaticamente y yo me pienso que si? bueno si alguien es tan amable y tiene un poco de tiempo que lo vuelva a explicar de otra manera. Muchas gracias
__________________ Usuario Novato, xD :pensando: |
| |||
Si no indicas que tipo de campos de "fecha" usas .. no podemos ver que sucede. Si usas: DATE -> para la fecha actual CURDATE() DATETIME -> para la fecha actual NOW() (esto ya lo había comentado Reynier . .fijate en sus ejemplos) Luego será cosa de usar la función DATE_FORMAT() para dar el formato de salida que gusten a sus fechas. Un saludo, |
| ||||
Saludos Cluster... No sé si me leiste, pero mi caso está claro... tengo un campo tipo DATE... quiero poner por default la función CURDATE()... (ya entendí eso)... Ve la imagen que adjunté en mi post anterior, muestra justo después de efectuar "el cambio", ve como campo fecha del tipo DATE sigue en 0000-00-00 (hasta arriba la consulta, hasta abajo el campo)... pensaba era un error de phpMyAdmin... pero buscando, allé esto: ALTER TABLE [nombre_de_la_tabla] CHANGE [nombre_columna] [nombre_columna opciones_de _columna]; que se supone es la estructura de la query correcta pa' hacer este tipo de cambios.. comparandola con la que realiza phpMyAdmin... no le veo error... Incluso ya he intentado crear nuevos campos de tipo DATE y DATETIME con sus respectivas CURDATE() y NOW() desde el inicio.. pero no se graban... ... ... pero lo grave es que también intenté meter la función CURDATE() desde PHP y tampoco me resultó!!!! ... problemas de instalación de MySQL???... no creo seguí tus intrucciones Cluster ... trabajo con la versión 1.4...
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" Última edición por jam1138; 24/01/2005 a las 06:32 Razón: errores de dedazo (hace frio > manos congeladas) |
| ||||
... solo por aclarar.. como dije, ya intenté utilizar la función CURDATE() desde PHP... sin responderme. No hay error en mi insersión de datos ya que si cambio 'CURDATE()' por algo tipo '2005-01-24' ésto último sí se guarda en mi BD... ya, solo eso (... como que me estoy convensiendo que´es algún problema de configuración de MySQL )
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
Pero .. jam1138 que código usas concretamente?. El campo en tu BD en tu tabla debes crearlo como DATE o DATETIME .. luego será en tus consultas SQL donde en los INSERT o UPDATE le des valor a ese campo con la fecha actual que es lo que obtienes con las funciones de Mysql: CURDATE() o NOW() según corresponda al tipo de campo que uses. Pon el código completo que uses PHP para generar una sentencia "INSERT" o similar con esa fecha por defecto actual. Un saludo, PD: La imagen no la veo o no se vé .. |
| |||
Cita: CURDATE() .. o NOW() y funciones de Mysql en general NO VAN entre comillas en tus sentencias SQL (fijate en los ejemplos de Reynier). De todas formas . .eso lo veremos cuando pongas el código que usas.
Iniciado por jam1138 ... solo por aclarar.. como dije, ya intenté utilizar la función CURDATE() desde PHP... sin responderme. No hay error en mi insersión de datos ya que si cambio 'CURDATE()' por algo tipo '2005-01-24' ésto último sí se guarda en mi BD... ya, solo eso (... como que me estoy convensiendo que´es algún problema de configuración de MySQL ) Un saludo, |
| ||||
Cita: .... ok, eran las comillas por lo que no se insertaban desde PHP... pero sigo sin poder ponerla como predeterminada... solo por experimentar probé esto:
Iniciado por Cluster CURDATE() .. o NOW() y funciones de Mysql en general NO VAN entre comillas en tus sentencias SQL (fijate en los ejemplos de Reynier). De todas formas . .eso lo veremos cuando pongas el código que usas. Un saludo, ALTER TABLE `noticias` CHANGE `fecha` `fecha` DATE DEFAULT CURDATE() NOT NULL (sin comillas) pero no resultó... ya, sé que lo de menos es poner la función desde PHP (ahora que ya ví que sirvió ) pero la pregunta sigue ahí... qué pasa que no puedo ponerla por Default? ... Saludos... calurosos (aunque maldito frio el que tengo )
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
Bueno .. esos detalles no son de PHP sino de SQL .. deberías preguntar en el foro de Base de datos por la sentencia SQL adecuada y si es posible asignar como valor por defecto una función (creo que no .. pero deberías consultarlo en dicho foro). Lo "normal" es que en tus "INSERT" y demás funciones uses siempre CURDATE() o la función que correponda para darle su valor en ese instante .. Un saludo, |
| ||||
ya, me rindo por ahora. Gracias por la atención; preguntaré en aquel foro... Te diré que estoy casi seguro de que sí se puede asignar una función como valor por defecto, juraria que lo he visto (lo que me hace dudar es que tu digas que no ). Hasta pronto
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| ||||
Volviendo a la pregunta Original Cita: La pregunta era porque 1º necesitaba guardar en la BD el dya-mes-año, cosa de no complicarme la vida para mostrar los resultados de la consulta en el PHP y de este modo solo poner $rs["fecha"];
Iniciado por Chichoauza Hola: existe alguna forma de guardar en MySQL meiante PHP las fechas con el formato d/m/Y pues, como aparentemente no se puede, encontre una solucion alternativa, y procedo a preguntarles a los EXPERTOS si es que esta bien... 1º Guardo desde el PHP la fecha con $fregistro=date("Y-m-d"); 2º Recupero la fecha para mostrarla en formato DIA - MES - AÑo de la siguiente forma... Código PHP: Última edición por Chichoauza; 24/01/2005 a las 08:15 |
| |||
Chichoauza El hecho de que un "motor" de base de datos (como es Mysql) tenga campos de cierto tipo como es el caso para gestionar fechas . .no es para "complicarte" más usarlos .. Por ejemplo .. cuando quieras operar con esas fechas veras como se te va a complicar la vida .. pues en SQL ya existen funciones implementadas para hacer cáculos con fechas. Como habrás leido en este mensaje .. la fecha actual la obtienes con la función de Mysql: CURDATE (siendo un campo tipo DATE) Código PHP: DATE_FORMAT() Código PHP: Todo esto no es "complicarte" sino -usar- más SQL que para eso es un lenguaje própio (Lenguaje Estructurado de consultas). Todo lo que puedas resolver desde SQL será mucho más optimo que mezclar PHP (u otros lenguajes) por médio .. además de hacer más "independiente" tus apliaciones del lenguaje que uses (PHP u otros). más info: http://dev.mysql.com/doc/mysql/en/da...functions.html Un saludo, |
| ||||
Pues sip ... Como bien dice Cluster todo es puro SQL. Si estudias un poquitín más verás que MySQL tiene funciones específicas para trabajo con fechas. Por ejemplo yo tengo en unas de mis tablas un campo de tipo DATETIME y entonces el formato del mismo es yyyy-mm-dd hh:mm:ss. Ahora para trabajar con ese campo la consulta la hago de esta forma: Código PHP: Código PHP: Código PHP: Salu2
__________________ Ing. Reynier Pérez Mira |
| ||||
en www.mysql-hispano.com hay algunos artículos sobre manejo de fechas y manejo de MySQL en generla que quizá te sirvan si les dás una leidita... siquiera para tener una idea de lo que puedes hacer ¿no? Saludos
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
Desde un formulario (en el que tengo 3 campos, dia, mes año) hago una búsqueda filtrando por fecha, y mas aun, solo quiero que me salgan todas las entradas que se correspondan unicamente con el mes elegido (supongamos 08, Agosto), cómo hago ? si solo especifiqué el mes y en la BD está en formato AAAA-MM-DD ... Saludos
__________________ Impala |
| |||
impala .. haz tus preguntas en el foro de "Base de datos" .. es SQL lo que necesitas principalmente!!. Lo has leido ya? http://dev.mysql.com/doc/mysql/en/da...functions.html Un saludo, |
| ||||
bueno, bueno, gracias ya modifique esto en mis códigos y ya le di al google para aprender un poco mas en cuanto a las fechas con mysql... me fueron de gran ayuda, claro, como siempre. un saludo a tudos los que participaron, Gracias nuevamente |
| |||
agregando una duda mas de fechas a ver todos han dicho como usar las fechas con las funciones de php y mysql pero creo que no se resuelto la duda mas importante para mi como inserto una fecha en mysql desde php y que esta fecha es selecionada por el usuario en un campo date, yo ya use todo lo que se ha dicho en este post y nada me ha funcionado para insertar una fecha el codigo va de mil formas desde el formato aaaa:mm:dd aaaa/mm/dd y con el clasico "INSERT INTO arc_compromisos (saccve_acuerdo ) VALUES ($fecha)"; sin conseguir que inserte la fecha alguien me puede decir donde estoy mal jejejee si no es mucha molestia la verdad me siento muy desesperado xq no me sale y creo que es algo sencillo pero bueno espero me puedan ayudar gracias de antemano |