Текущая дата MySQL CURRENT TIMESTAMP вставка времени

Если Вы хотите, в MySQL таблице, отслеживать время добавления записи (например: время когда сообщение было добавлено в базу данных), то есть несколько способов реализации этой задумки.

Самое распространенное решение – создать поле TIME , где время будет хранится в Unix формате (число секунд, отсчитанное от условной даты дня рождения Unix 1970-01-01):

mysql_query("ALTER TABLE `my_table` ADD `time` TIME NOT NULL");

Теперь чтобы вставить в ячейку time время можно использовать функцию php time():

mysql_query("INSERT INTO `my_table` (`pole1`,`pole2`,`pole3`,`time`) VALUES ('string1','string2','string3','".time()."')");

Но если Вы создали поле не в формате TIME , а в формате TIMESTAMP:

mysql_query("ALTER TABLE `my_table` ADD `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP");

То и вставлять время нужно в формате TIMESTAMP. Для этого используется параметр CURRENT_TIMESTAMP (текущее время) прямо в запросе INSERT:

mysql_query("INSERT INTO `my_table` (`pole1`,`pole2`,`pole3`,`time`) VALUES ('string1','string2','string3',CURRENT_TIMESTAMP)");

Время, при этом, указывается в легко читаемом виде, например: 2013-09-17 15:00:00

Однако такой формат трудно вычислять внутри php скрипта. Как , например, вычислить число секунд, прошедших со времени добавления последнего сообщения в базу?
Для этого нам вначале понадобится перевести TIMESTAMP в формат Unix-времени с помощью функции php strtotime().
Пример запроса и преобразования времени:
/*получаем данные из БД, а именно - время сообщения с ID  равным 1, в формате TIMESTAMP */
$sql=mysql_query("SELECT `time` FROM `my_table` WHERE `id` = '1' LIMIT 1");
$array=mysql_fetch_array($sql);
$my_time=$array['time'];
/*преобразуем время в удобный формат Unix time */
$my_time = strtotime($my_time);
echo $my_time();
$time_offset = time()-$my_time();

Получаем число секунд (1379415600) прошедших с 1970-01-01 и разницу в секундах относительно текущего момента.

Опубликовано 17.09.2013 в 16:09 · Автор Вебдизайнеру, сисадмину, вебмастеру · Ссылка
Рубрики: MySQL, PHP программирование · Теги: , , , , , , , , , , ,