Для начала выберем функцию с подходящей гранулярностью. DATEDIFF явно не подходит, т.к. даёт разницу в кол-ве целых дней. К счастью, есть аналогичная функция — TIMEDIFF, которая вычисляет разницу с точностью до микросекунд.
Результат работы TIMEDIFF не совсем то, что нам требуется:
|
|
SELECT TIMEDIFF('2018:01:01 00:00:00', '2018:01:01 00:00:00.000001'); -> '-00:00:00.000001' |
Нужно как то перевести это в количество секунд. И для этого случая есть своя функция, которая переводит время в кол-во секунд:
|
|
SELECT TIME_TO_SEC('1:05.001') -> '3900.001' |
Итак, скомпонуем всё вместе, чтобы получить желаемый результат:
|
|
SELECT TIME_TO_SEC(TIMEDIFF(DATETIME_1, DATETIME_2)); |
Альтернативный вариант — воспользоваться функцией UNIX_TIMESTAMP(), чтобы преобразовать даты в число секунд с начала UNIX эпохи, чтобы потом найти между ними разницу:
|
|
SELECT unix_timestamp('2018-01-01 11:00:00.001') - unix_timestamp('2018-01-01 10:00') -> 3600.001 |
MySQL
Данная запись опубликована в 15.06.2018 19:06 и размещена в рубрике SQL.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Ноябрь 2, 2012 г.
О полезном операторе - SQL_CALC_FOUND_ROWS. Это конструкция просто незаменима для организации постраничного вывода каких либо данных. Все время забываю синтаксис, приходится каждый раз искать. Решил записать в блоге, чтобы уж не терять :).
Во всех ...
Читать
Ноябрь 11, 2019 г.
По умолчанию для mysqldump требуются права пользователя на блокировку таблиц.
Потому, когда вы создаёте бекапы, вы можете получить сообщение вроде:
mysqldump: Got error: 1044: "Access denied for user 'USER'@'%' to database 'DATABASENAME'" when ...
Читать
Июль 20, 2023 г.
Обычно для этого требуется выполнить две команды - создать пользователя, выдать права.
Создание пользователя MySQL
Для нашей цели достаточно выполнить следующую команду:
[crayon-6ae502de1e97f835583151/]
Где new-user-name - имя нового пользователя, ...
Читать
Март 6, 2019 г.
Для mySQL 8й версии эта статья не актуальна, т.к. там появилась целая серия замечательных функций, в том числе ROW_NUMBER(). Но пока на значительном количестве хостингов используется 5я версия.
Приём прост: требуется объявить переменную и инкрементировать ...
Читать