mariadb sec_to_time отображается только до 23:59:59 - PullRequest
0 голосов
/ 01 июня 2018

Я использую:

$ mysql --version
mysql  Ver 15.1 Distrib 10.2.14-MariaDB, for Linux (x86_64) using readline 5.1

, и если я делаю запросы, подобные этим:

select sec_to_time(timestampdiff(SECOND, '2018-05-31T00:00:00', '2018-06-01T00:00:01'))
union all
select sec_to_time(24*60*60+1)

Результат всегда равен '00: 00: 01 'вместо '24:00: 01 '

Я что-то не так делаю или это (известная) ошибка?

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Обращаясь к экспертам DbVis, я получил решение.

Драйвер JDBC возвращает результат как объект времени.

Интерфейс командной строки возвращает его как объект CHAR.

Приведение к CHAR отображает тот же результат, что и интерфейс командной строки.

0 голосов
/ 04 июня 2018

Только что обнаружил, что это «проблема с отображением».

Запуск

select sec_to_time(timestampdiff(SECOND, '2018-05-31T00:00:00', '2018-06-01T00:00:01'))

в инструменте командной строки mysql / mariadb дает '24: 00: 01'

При запуске на той же БД через DbVisualizer выдает '00: 00: 01 '.

Это просто проблема с отображением, так как сортировка работает:

select sec_to_time(timestampdiff(SECOND, '2018-05-31T00:00:00', '2018-06-01T00:00:01'))
union all
select sec_to_time(timestampdiff(SECOND, '2018-05-31T00:00:01', '2018-06-01T00:00:01'))
union all
select sec_to_time(timestampdiff(SECOND, '2018-05-31T00:00:02', '2018-06-01T00:00:01'))
union all
select sec_to_time(timestampdiff(SECOND, '2018-06-01T00:00:00', '2018-06-01T00:00:01'))

порядок по 1

с радостью покажет

00:00:01
23:59:59
00:00:00
00:00:01

Извините ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...