Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

15 Декабрь 2019, 00:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Извлечь время из TIMESTAMP  (Прочитано 1105 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Hugin-san
Новичок
*
Offline Offline

Сообщений: 4


« Стартовое сообщение: 24 Май 2019, 11:32 »

Дано: столбец в формате DATETIME.
Задача: извлечь из него только время. Например, все записи с временным промежутком с 4 до 5 утра.

Нашёл в сети несколько возможных вариантов, но в каждом случае база ругается на синтаксис. Пробовал использовать convert -  база возвращает десятичную дробь.
« Последнее редактирование: 24 Май 2019, 12:44 от Hugin-san » Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 839


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 24 Май 2019, 13:02 »

Попробуйте такой запрос ("dt" — столбец в формате DATETIME, "tab" — имя таблицы:
Код:
SELECT "dt" FROM "tab" WHERE TO_CHAR("dt", 'H:m') BETWEEN 4 AND 5
Записан

Hugin-san
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #2: 24 Май 2019, 14:44 »

Попробуйте такой запрос ("dt" — столбец в формате DATETIME, "tab" — имя таблицы:
Код:
SELECT "dt" FROM "tab" WHERE TO_CHAR("dt", 'H:m') BETWEEN 4 AND 5
Работает. Огромное спасибо.
Записан
Hugin-san
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #3: 24 Май 2019, 15:18 »

Попробуйте такой запрос ("dt" — столбец в формате DATETIME, "tab" — имя таблицы:
Код:
SELECT "dt" FROM "tab" WHERE TO_CHAR("dt", 'H:m') BETWEEN 4 AND 5
Хотя нет, не до конца работает. С 3 часов ночи до 9 нормально выдаёт, также с 11 до 23 часов.. А вот если вытаюсь выделить другие промежутки - в выборку попадают смешаные результаты. Например, если указать between 1 and 2, то в выборку почему-то попадает 14:00. Пробовал заменить H:m (не нашёл в мануале такого формата) на HH24 - не помогло.
« Последнее редактирование: 24 Май 2019, 15:44 от Hugin-san » Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 839


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #4: 24 Май 2019, 16:16 »

Пробуйте так:
Код:
SELECT "dt" FROM "tab" WHERE HOUR("dt") BETWEEN 1 and 2
Записан

Hugin-san
Новичок
*
Offline Offline

Сообщений: 4


« Ответ #5: 24 Май 2019, 16:34 »

Пробуйте так:
Код:
SELECT "dt" FROM "tab" WHERE HOUR("dt") BETWEEN 1 and 2
Удивительно. Спасибо. Я пробовал так сделать раньше, но использовать between не догадался.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!