Foros del Web » Programando para Internet » PHP »

Introducir fecha en base de datos

Estas en el tema de Introducir fecha en base de datos en el foro de PHP en Foros del Web. Hola!!! Tengo un formulario para ingresar los campos a una base de datos. Lo que quiero saber es cómo introducir en la tabla automáticamente la ...
  #1 (permalink)  
Antiguo 07/02/2004, 14:56
Avatar de MateoVasco  
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 0
Introducir fecha en base de datos

Hola!!!

Tengo un formulario para ingresar los campos a una base de datos. Lo que quiero saber es cómo introducir en la tabla automáticamente la hora y fecha de inserción del registro...

Gracias!!!
  #2 (permalink)  
Antiguo 07/02/2004, 16:02
 
Fecha de Ingreso: septiembre-2003
Mensajes: 16
Antigüedad: 20 años, 7 meses
Puntos: 0
pues guardando la fecha en la base de datos en formato timestamp

$fecha = time() y lo guardas
  #3 (permalink)  
Antiguo 07/02/2004, 16:50
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Si es para la BD, mejor utilizar funciones de MySql que para eso están... Por ejempñlo la función CURDATE(), o NOW()

Para eso, el campo de la tabla de la BD donde vas a guardar la fecha deberá ser de tipo DATE o DATETIME (ya te dejo un enlace donde podrás ver los tipos de datos)... en realidad para manejar fechas no es bueno utilizar campos de tipo varchar o similares.

Ahora... la sintaxis de Mysql sería (suponiendo que el campo donde guardas la fecha se llama "fecha"):
Código PHP:
"INSERT INTO tabla(campo1, campo2, fecha) VALUES('valor1', 'valor2', CURDATE())" 
Utiliza CURDATE() para campos tipo DATE y NOW() para campos de tipo DATETIME.

Puedes ver más información en el manual de Mysql:
http://www.mysql.com/doc/en/Date_and...functions.html

Y sobre los tipos de datos de Mysql:
http://www.mysql-hispano.org/page.php?id=22

Saludos
  #4 (permalink)  
Antiguo 07/02/2004, 17:05
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ahora que veo bien.. por ningún lado pones que estés utilizando Mysql y yo respondiendo..... bueno supongo que si hubieras buscado en el foro de BASES DE DATOS habrías hallado respuestas en post anteriores.. así que la próxima... a buscar primero!!

Saludos
  #5 (permalink)  
Antiguo 07/02/2004, 17:12
Avatar de MateoVasco  
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 0
Sip... utilizo MySQL...

Trataré con la funcion MySQL que me dices.

Estuve intentando con:

print (date("l dS of F Y h:i:s A"));

Y me sale en Inglés... hay algujna forma de ponerlo en español???

Gracias!!!
  #6 (permalink)  
Antiguo 07/02/2004, 17:19
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
MateoVasco:

Las funciones que te puse de Mysql son ideales para trabajar con las fechas de la BD.. ordenar campos.. sumar, restar... en general operar con las fechas vía Mysql...

Si lo quieres hacer vía PHP.. pues creo que una de las primeras FAQ's de este foro pone una función para "traducir" la fecha al español... pero como te digo... si es para la BD... mejor con Mysql... claro.. todo depende del uso que le vas a dar.

saludos
  #7 (permalink)  
Antiguo 07/02/2004, 17:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo ideal es que trabajes las fechas en tu Base de datos en campos DATE o DATETIME como te comentó jpinedo ..

Si quieres darle formato a una fecha de tu BD usa la función de MYSQL: DATE_FORMAT() que vendría a ser el equivalente al date() de PHP (casi con la misma sintax inclusive) ...

Si quires esa fecha a su vez en formato "español" tipo:
de: 2004-02-07 -> "Sabado, 7 de Febrero del 2004 .. ahí tendrás que usar algo de lógica "PHP" para obtener esas fechas en español (castellano) .. En las FAQ's de este foro tienes un ejemplo de Manoloweb (si mal no recuerdo) .. Pero lo principal es que trabajes las fechas en formato DATE o DATETIME en tus Base de datos .. cosa que te ayudará a realizar operaciones matemáticas con esas fechas con las funciones de Mysql (en su SQL) directas siendo más optimo ese tipo de procesos que hacerlo mezcla PHP+Mysql.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 07/02/2004, 17:54
 
Fecha de Ingreso: enero-2004
Mensajes: 89
Antigüedad: 20 años, 3 meses
Puntos: 0
Cordial saludo Jpinedo;

Ya he leido en varias ocaciones sus ayudas sobre SQL.
Son muy buenas.

Quizas ya ha visto mis preguntas...

Son muy elementales. : (

Yo guardo la fecha asi:

$fecha = date('d n Y');

Con la respuesta que usted le dio a Mateo hice esto:

<?php
$hoy = CURDATE();
echo $hoy;
echo CURDATE();
?>

Y solo me dio errores... ?

Pero bueno, hace dias que tengo este post "guardadito", y me parece que este es el momento y el post para sacarlo.

*****************

Cual es la manera correcta de ELIMINAR USUARIOS INACTIVOS DE UNA BD?.

Tengo esto:
$fecha = date('d n Y');

mysql_query("INSERT INTO tabla (campo1,campo2,campo3,etc...) VALUES
('','$fecha','$usuario','$nombre','$MSN')");

Yo quiero hacer una sentencia SQL mas o menos asi:

mysql_query("DELETE FROM tabla WHERE fecha <= 'fecha de hace dos meses atras' '");

Es decir, eliminar los usuarios inactivos desde hace 2 o 3 meses.

Como lo hago sin DESTRUIR-AVERIAR la BD?.
Pues... Yo me IMAGINO que la sentencia es WHERE 'fecha' >= 2003-11-01

Para eliminar los usuarios inactivos desde antes de Noviembre de 2003, pero quiero el consejo de ustedes.

Que tiempo me sugieres Jpinedo?, cuando la BD puede ser calificada como "muy grande"?

Gracias por la ayuda.
  #9 (permalink)  
Antiguo 07/02/2004, 17:59
Avatar de MateoVasco  
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 0
La funcion CURDATE me funcionó bien. Tiene formato XX-XX-XX. Voy a ver como lo modifico.
  #10 (permalink)  
Antiguo 07/02/2004, 18:03
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Si ves en el manual:
http://www.mysql.com/doc/en/Date_and...functions.html
El primer ejemplo que te ponen hace algo como lo que pides La sintaxis sería algo así:
Código PHP:
"DELETE FROM tabla WHERE TO_DAYS(NOW()) - TO_DAYS(fecha) > 30" 
esto eliminará los registros que tengan el campo fecha con más de treinta días de antigüedad...

Saludos
  #11 (permalink)  
Antiguo 07/02/2004, 18:09
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ah ... me olvidaba... las funciones de Mysql son eso... de Mysql!! no de PHP...
$hoy = CURDATE(); no funcionará porque CURDATE() no existe en PHP...

Las funciones de mysql deberías utilizarlas al momento mismo de hacer la consulta a la Bd... o sea dentro del query tal como el ejemplo que te puse...

Ahora... creo que deberías hacer tus preguntas en general (no dirigidas a mí específicamente)... porque estás limitando la gran ayuda que otros pueden aportar...

saludos
  #12 (permalink)  
Antiguo 07/02/2004, 18:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
MateoVasco ..

La función CURDATE() de Msyql .. genera un aaaa-dd-mm y eso es standar por qué lo almacenas en un campo DATE .. Eso sobre la BD no se puede cambiar (de como lo guarda) pero si que puedes leerlo con el formato que quieras aplicando la función de Mysql (SQL) : DATE_FORMAT() a la hora de presentar esos datos ...

CHAMO01

CURDATE() son funciones de MYSQL .. y son sentencias SQL .. las cuales se han de ejecutar sobre la base de datos Msyql .. Las sentencias SQL las ejecutas con la función de PHP:

mysql_query() ..

Te comento .. que si bien estás programando en PHP .. también estás trabajando con Base de datos (en tu caso Mysql) y esta se le hacen "consultas" con su lenguaje própio: SQL (Lenguaje estructurado de consultas) .. Así que intenta diferenciar que cosa es de "PHP" y que es cosa de "Mysql" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 07/02/2004, 19:52
Avatar de MateoVasco  
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 0
Ok... Gracias!!!
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 08:28.