Использование дат в SQLite

Вопрос:

У меня есть столбец TEXT, называемый “время” в столовой, и в столовой боль, которая является ТЕКСТом, отформатированным как ГГГГ-ММ-ДДХ: ММ. Я пытаюсь искать другие времена, которые находятся в пределах 12 часов определенного времени, хотя я не могу понять, как это сделать.

Я пробовал тестирование

WHERE pain.time < meal.time + "1:00" AND pain.time > meal.time

но этот подход меняет год, а не час. Я также пробовал тестировать тот же запрос, добавляя “0000-00-00T01: 00”, но он ничего не делает. Я не уверен, что еще проверить.

Ответ №1

SQLite не имеет встроенных типов данных даты и времени, поэтому вам нужно использовать номера или строки и правильно их обрабатывать.

Для выполнения вычислений вам необходимо либо выполнить их непосредственно по числовому значению (которое может потребовать преобразования в число и обратно), либо использовать модификаторы встроенных функций даты и времени:

... WHERE meal.time BETWEEN datetime(pain.time, '-12 hours') AND pain.time

Оцените статью
TechArks.Ru
Добавить комментарий