![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. ![]()
Я в 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.
Неактивен