У меня возникла проблема с выбором элементов в течение заданного интервала времени. Для иллюстрации проблемы рассмотрим таблицу Orders
со следующими полями:Выбор строк для заданного интервала времени
- id
- order_date
- order_time
- details
т.д.
У меня есть order_date в формате MJD и order_time в секундах. Например., ORDER_DATE = 57281 (в MJD) // 16-Sep-2015 order_time = 32400 (в секундах) // 9:00 утра
SELECT * FROM
(SELECT Orders.id, Orders.order_date date,
Orders.order_time time FROM Orders
WHERE Orders.date<=endDate and Orders.order_time < endTime)
WHERE date>=startDate and time > startTime
Это, кажется, не возвращать правильные значения, так как не способный ассоциировать следующую проверку времени только когда дата даты начала.
WHERE date>=startDate and time > startTime
Что здесь может быть отсутствует? Существуют ли другие простые способы обработки таких запросов? Пожалуйста, предложите.
Какая СУБД вы используете? Postgres? Oracle? Даты не имеют никакого «формата» в базе данных SQL, формат применяется только тогда, когда вы _display_ их. –
Я использую базу данных SQLite, используемую для хранения данных на небольших устройствах ... в настоящее время дата и время хранятся с типом INTEGER и без определенного формата. Дата INTEGER представляет дату MJD. Время INTEGER представляет собой соответствующее число секунд. – Omkar