Для начала выберем функцию с подходящей гранулярностью. 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Октябрь 18, 2010 г.
Иногда нужно выбрать строки из базы данных в случайном порядке. При сайтостроительстве эта задача возникает довольно часто - вывести случайную тему из форума, показать в блоке случайный продвигаемый товар, показать случайный ответ посетителя за последнюю ...
Читать
Август 3, 2022 г.
Наиболее простой ответ - это использование запроса alter, где вы задаёте новое значение для AUTO_INCREMENT нужной вам таблицы:
[crayon-6aaedc976719b852871366/]
Вы можете достичь такого же эффекта изменениями соответствующего столбца вашей таблицы: ...
Читать
Ноябрь 5, 2016 г.
Что делать, если нужно пронумеровать строки прямо в запросе, т.е. во время UPDATE? Полистав руководство MySql 5.5, нужной функции я не нашел.
Мне нужно было сохранять позиции пользователей в рейтинге, т.е. пронумеровать пользователей в зависимости ...
Читать
Апрель 24, 2023 г.
В MSSQL есть функция ROW_NUMBER(), которая нумерует строки выборки. В MySQL такой функции пока нет, но мы можем использовать трюк с переменными для достижения нужного эффекта.
К примеру, вы хотите выбрать название книг и пронумеровать список. Изначально ...
Читать