I have a field in a MySQL table which has a timestamp
data type. I am saving data into that table. But when I pass the timestamp (1299762201428
) to the record, it automatically saves the value 0000-00-00 00:00:00
into that table.
How can I store the timestamp in a MySQL table?
Here is my INSERT
statement:
INSERT INTO table_name (id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES (1,5,9,'2',1299762201428,5,10,20,'1'),
(2,5,9,'2',1299762201428,5,10,20,'1')
pass like this
Use
datetime
field type. It comes with many advantages like human readability (nobody reads timestamps) and MySQL functions.To convert from a unix timestamp, you can use MySQL function
FROM_UNIXTIME(1299762201428)
. To convert back you can useUNIX_TIMESTAMP
:SELECT UNIX_TIMESTAMP(t_time) FROM table_name
.Of course, if you don't like MySQL function, you could always use PHP:
'INSERT INTO table_name SET t_time = ' . date('Y-m-d H:i:s', $unix_timestamp)
.Use
FROM_UNIXTIME()
.Note: 1299762201428 looks more like a millisecond-timestamp (like Date()*1 in JavaScript), and you probably have to divide that by 1000.
Datatype 'bigint unsigned' may suit this requirement.
If the timestamp is the current time, you could use the mysql
NOW()
functionYou can use
now()
as well in your query, i.e. :It will use the current timestamp.