Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Я в SQL новичок, так что не ругайте, если что)
Хотя PHP немного знаю) Проблема именно в том, чтобы составить запрос(ы) для PHP страницы.
Нашёл, что MySQL функция "SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');" возвращает unix формат (1196440219). Это мне и нужно.
Предположим, что человек в HTML форму (сама страница на PHP) вводит "человеческий" формат даты "2007-11-30 10:30:19".
На этом этапе никак не могу понять, какие нужно составить запросы (или запрос), чтобы
1) дата, которую ввёл человек передалась к MySQL.
2) MySQL сама сконвертировала эту дату в Unix формат (1196440219)
3) и чтобы это число сохранить в таблицу, например, WHERE id = '5'.
P.S. на сей момент я только научился использовать SELECT и INSERT INTO на примитивном уровне.
Заранее спасибо!
Отредактированно warma2d (04.09.2012 18:52:42)
Неактивен
А в каком формате Вы собираетесь хранить в БД? В timestamp или в datetime?
Неактивен
deadka, собираюсь хранить именно в Unix формате (1196440219).
Вы имеете в виду, хранить в каком типе данных? Поскольку это простое число, то собирался поставить просто integer.
Или "timestamp и datetime" более подходящие?
Отредактированно warma2d (05.09.2012 19:18:51)
Неактивен
Вообще datetime и timestamp более подходящие - для этого и создавались.
Живой пример:
mysql> create table t_6073_d(t datetime); Query OK, 0 rows affected (0.08 sec) mysql> insert into t_6073_d(t) values('2012-01-01 11:22:33'); Query OK, 1 row affected (0.00 sec) mysql> select * from t_6073_d; +---------------------+ | t | +---------------------+ | 2012-01-01 11:22:33 | +---------------------+ 1 row in set (0.00 sec)
и
mysql> create table t_6073(t timestamp); Query OK, 0 rows affected (0.13 sec) mysql> insert into t_6073(t) values('2012-01-01 11:22:33'); Query OK, 1 row affected (0.00 sec) mysql> select * from t_6073; +---------------------+ | t | +---------------------+ | 2012-01-01 11:22:33 | +---------------------+ 1 row in set (0.00 sec)
Неактивен
Спасибо за ответ) Честно говоря, deadka, я не сразу понял, в чём отличие. А затем заметил, что с типом "datetime" быстрее создалась таблица (0.08 sec). В остальном, в роде отличий нет
Однако, я так и не понял, какие нужны запрос(ы), чтобы
1) дата, которую ввёл человек передалась к MySQL.
2) MySQL сама сконвертировала эту дату в Unix формат (1196440219)
3) и чтобы это число сохранить в таблицу, например, WHERE id = '5'.
Отредактированно warma2d (05.09.2012 19:47:52)
Неактивен
datetime от timestamp отличаются размером и тем, хранится ли временная зона.
Подробнее смотрите например http://habrahabr.ru/post/61391/
1) В примере, приведенном мной, в таблицу вставлялась дата в "человеческом" виде (2012-01-01 11:22:33). То есть при использовании этих типов данных mysql успешно конвертирует сам.
2) MySQL сам решает как хранить данные. Вас должно интересовать, в каком виде Вы хотите
из него эти данные получить.
mysql> select t,unix_timestamp(t) from t_6073; +---------------------+-------------------+ | t | unix_timestamp(t) | +---------------------+-------------------+ | 2012-01-01 11:22:33 | 1325406153 | +---------------------+-------------------+ 1 row in set (0.00 sec) mysql> select t,unix_timestamp(t) from t_6073_d; +---------------------+-------------------+ | t | unix_timestamp(t) | +---------------------+-------------------+ | 2012-01-01 11:22:33 | 1325406153 | +---------------------+-------------------+ 1 row in set (0.00 sec)
3) Покажите структуру таблицы Вашей, куда хотите сохранить ( show create table t).
Если там уже есть запись, у которой id = 5, то надо update использовать, если нет, то insert.
Неактивен