@khodos_dmitry

Как вставить в mysql текущее время в милисекундах?

`updated` = NOW() + 0 у меня не работает почему-то
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@ivankomolin
Если у вас mysql 5.6 и выше используйте это:
`updated` = NOW(3)

Если ниже, придется задавать через php.

Немного теории:
mysql> CREATE TABLE fractest( c1 TIME(2), c2 DATETIME(2), c3 TIMESTAMP(2) );
Query OK, 0 rows affected (0.33 sec)

mysql> INSERT INTO fractest VALUES
     > ('17:51:04.777', '2014-09-08 17:51:04.777', '2014-09-08 17:51:04.777');
Query OK, 1 row affected (0.03 sec)

mysql> SELECT * FROM fractest;
+-------------+------------------------+------------------------+
| c1          | c2                     | c3                     |
+-------------+------------------------+------------------------+
| 17:51:04.78 | 2014-09-08 17:51:04.78 | 2014-09-08 17:51:04.78 |
+-------------+------------------------+------------------------+
1 row in set (0.00 sec)


Обратите внимание как заданы типы данных TIME(2). Цифра в скобках означает количество символов после точки в итоге. Поддерживается до 6 цифр(микросекунды)
Также можно получить текущюю дату с точностью до микросекунд, пример:
SELECT NOW(6);
Это работает начиная с mysql 5.6.

В mysql 5.5 дату нужно хранить в таком же формате до 6 цифр после точки в виде строки, получить текущюю дату с точностью больше секунд нельзя. Единственное что есть в эту сторону это функция MICROSECOND. Она позволяет выделить дробную часть из строки с датой.
SELECT MICROSECOND('2010-12-10 14:12:09.019473');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
Программирую с 1989 года
читаем про типы полей.
понимаем, что точнее секунд стандартные типы не работают. пишем свою реализацию

1. храним в BIGINT
2. преобразовываем в "нормальное" время
select FROM_UNIXTIME(datefield/1000) from my_table
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.
18 авг. 2018, в 09:13
13000 руб./за проект
18 авг. 2018, в 01:10
17000 руб./за проект
17 авг. 2018, в 23:00
5500 руб./за проект