Вебломастер - поточна дата mysql current timestamp вставка часу

Вебломастер - поточна дата 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) ");

Однак такий формат важко обчислювати всередині 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 й різницю в секундах щодо поточного моменту.