У меня есть столбец TEXT, называемый “время” в столовой, и в столовой боль, которая является ТЕКСТом, отформатированным как ГГГГ-ММ-ДДХ: ММ. Я пытаюсь искать другие времена, которые находятся в пределах 12 часов определенного времени, хотя я не могу понять, как это сделать.
Я пробовал тестирование
WHERE pain.time < meal.time + "1:00" AND pain.time > meal.time
но этот подход меняет год, а не час. Я также пробовал тестировать тот же запрос, добавляя “0000-00-00T01: 00”, но он ничего не делает. Я не уверен, что еще проверить.
SQLite не имеет встроенных типов данных даты и времени, поэтому вам нужно использовать номера или строки и правильно их обрабатывать.
Для выполнения вычислений вам необходимо либо выполнить их непосредственно по числовому значению (которое может потребовать преобразования в число и обратно), либо использовать модификаторы встроенных функций даты и времени:
... WHERE meal.time BETWEEN datetime(pain.time, '-12 hours') AND pain.time