Понятно, что все что я хочу, легко делается с помощью языка программирования, напр. PHP, но ради спортивного интереса, можно ли это сделать одним запросом на SQL?
Итак, есть таблица с некими данными, одно из полей - дата-время. Хочется получить список дат (за заданный небольшой промежуток времени), для которых записей в таблице нет.
Напр. есть записи
"2020-12-01 15:25:26", другие поля"
"2020-12-02 12:42:11", другие поля
"2020-12-04 11:33:42", другие поля
"2020-12-05 05:24:36", другие поля
"2020-12-07 07:15:56", другие поля
"2020-12-08 03:11:27", другие поля
Я хочу сделать запрос, задав исходный диапазон "2020-12-01" "2020-12-07" и получить результат "2020-12-03", "2020-12-06"
1. rgl - 22 Декабря, 2020 - 12:41:57 - перейти к сообщению
2. Мелкий - 28 Декабря, 2020 - 10:38:30 - перейти к сообщению
Раз не указали СУБД, предположим что это postgresql.
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT d FROM generate_series('2020-12-01', '2020-12-07', interval '1 day') d WHERE NOT EXISTS (SELECT FROM tablename WHERE created_at >= d AND created_at < d + interval '1 day')