Сохранение отметки времени в таблице mysql с использованием php - PullRequest
87 голосов
/ 12 апреля 2011

У меня есть поле в таблице MySQL, которое имеет тип данных timestamp. Я сохраняю данные в эту таблицу. Но когда я передаю метку времени (1299762201428) в запись, она автоматически сохраняет значение 0000-00-00 00:00:00 в этой таблице.

Как сохранить метку времени в таблице MySQL?

Вот мое INSERT утверждение:

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')

Ответы [ 15 ]

0 голосов
/ 19 марта 2014

Если я знаю, что база данных - MySQL, я буду использовать функцию NOW () следующим образом:

INSERT INTO table_name
   (id, name, created_at) 
VALUES 
   (1, 'Gordon', NOW()) 
0 голосов
/ 08 ноября 2013

Вы также можете использовать now() в своем запросе, то есть:

insert into table (time) values(now());

Будет использоваться текущая метка времени.

0 голосов
/ 12 апреля 2011

Лучше использовать тип данных varchar(15).

0 голосов
/ 12 апреля 2011

Используйте datetime тип поля. Он имеет много преимуществ, таких как удобочитаемость (никто не читает метки времени) и функции MySQL .

Чтобы конвертировать из метки времени Unix, вы можете использовать функцию MySQL FROM_UNIXTIME(1299762201428). Для конвертации обратно вы можете использовать UNIX_TIMESTAMP: SELECT UNIX_TIMESTAMP(t_time) FROM table_name.

Конечно, если вам не нравится функция MySQL, вы всегда можете использовать PHP: 'INSERT INTO table_name SET t_time = ' . date('Y-m-d H:i:s', $unix_timestamp).

0 голосов
/ 12 апреля 2011

Если отметка времени является текущим временем, вы можете использовать функцию mysql NOW()

...