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

Insertar timestamp

Estas en el tema de Insertar timestamp en el foro de Mysql en Foros del Web. Buenas gente, una fácil. Tengo este campo timestamp en una tabla: `horaInicio` timestamp NOT NULL, e intento insertar un registro simple de este estilo: INSERT ...
  #1 (permalink)  
Antiguo 12/11/2009, 17:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Insertar timestamp

Buenas gente, una fácil.

Tengo este campo timestamp en una tabla:

`horaInicio` timestamp NOT NULL,

e intento insertar un registro simple de este estilo:

INSERT INTO phuBD.tabla(id, horaInicio) VALUES (1, '1900-01-01 09:00:00');

resultado:

Error code 0, SQL state 22001: Data truncation: Incorrect datetime value: '1900-01-01 09:00:00' for column 'horaInicio' at row 1

Que hago mal?

Y otra duda... si lo que quiero es almacenar Horas, lo más adecuado son campos del tipo timestamp? Teniendo en cuenta que la fecha no la necesito para nada..., o simplemente sería mejor utilizar varchar (5) y almacenar todas las horas con formato: "09:00", "10:00...?

Gracias!
  #2 (permalink)  
Antiguo 12/11/2009, 18:42
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: Insertar timestamp

El formato de dato que estás ingresando no es TIMESTAMP sino DATETIME. Son diferentes.
TIMESTAMP es 'aaaaMMddHHmmss' y DATETIME 'aaaa-MM-dd HH:mm:ss'
Ver manual de referencia: 11.3.1. Los tipos de datos DATETIME, DATE y TIMESTAMP
__________________
¿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 13/11/2009, 08:21
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Insertar timestamp

Cita:
Y otra duda... si lo que quiero es almacenar Horas, lo más adecuado son campos del tipo timestamp? Teniendo en cuenta que la fecha no la necesito para nada..., o simplemente sería mejor utilizar varchar (5) y almacenar todas las horas con formato: "09:00", "10:00...?
utiliza el tipo de dato time.
http://mysql.conclase.net/curso/index.php?cap=005
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 15/11/2009, 19:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: Insertar timestamp

Muchas gracias a ambos!!!

El primer problema que tenía, era que intentaba inserir una fecha no válida para un timestamp, aunque el formato fuese correcto:

Cita:
Tenga en cuenta que aunque DATETIME, DATE, y TIMESTAMP pueden especificarse usando el mismo conjunto de formatos, los tipos no tienen el mismo rango de valores. Por ejemplo, TIMESTAMP no pueden ser anteriores a 1970 o posteriores a 2037. Esto significa que una fecha como '1968-01-01', que sería legal como DATETIME o DATE no es un valor válido TIMESTAMP y se convierte a 0 si se asigna a un objeto de este tipo.
Y la segunda pregunta me parece perfecto utilizar tipo time en vez de timestamp para almacenar horas!
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:23.