Вступить в клуб →
лёгкаявопросSQL и проверка интеграций по API

Заказ от 2 августа не попал в выборку по BETWEEN: почему

Разбирая обращение, вы выполнили в DBeaver:

SELECT id, created_at, status
FROM orders
WHERE customer_id = 4821
  AND created_at BETWEEN '2026-08-01' AND '2026-08-02';

Клиент утверждает, что оформил заказ 2 августа в 14:30. Заказы за 1 августа в выдаче есть, а этого нет. Поле created_at имеет тип timestamp.

В чём причина?

  • BETWEEN не работает с типом timestamp: обе границы нужно заранее приводить к строке функцией to_char
  • Заказа нет в базе: BETWEEN включает обе границы целиком, значит 2 августа охвачено полностью до конца суток, и искать надо в другом месте
  • Без ORDER BY по created_at часть строк не возвращается, потому что порядок выдачи не определён
  • Верхняя граница '2026-08-02' раскрывается как 2 августа 00:00, поэтому весь день 2 августа в выборку не попадает

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела