MySQL: выбор между записями DateTime

0

Я хочу получить количество записей между двумя записями даты и времени. У меня есть столбец в моей таблице с именем created_date с datetime data type.

Я хочу выбрать строки, которые были созданы между 2017-01-10 и 2017-01-30

Я написал следующий запрос, но, похоже, он не является инклюзивным

SELECT* FROM table WHERE created_date BETWEEN '2017-01-10' AND '2017-01-30'

Теги:
datetime
join
crud

3 ответа

1

Проблема, с которой вы сталкиваетесь, связана с тем, что 2017-01-31 дня 2017-01-31 представляет эту дату в полночь. Чтобы обойти это, произнесите свой запрос следующим образом:

SELECT * FROM table WHERE created_date >= '2017-01-10' AND created_date < '2017-01-31';

Это говорит о том, чтобы принять любую дату на или после самого начала 2017-01-10 и до начала 2017-01-31. Это подразумевает весь день 2017-01-30.

0

Попробуй это

SELECT COUNT(1) 
FROM tableName
WHERE Cast(created_date as date) Between Cast('2017-01-10' as date) AND  Cast('2017-01-30' as date)
  • 0
    это будет включено?
  • 0
    просто попробуйте указать одну дату, проверьте результат запроса вручную.
0

Для получения количества записей между двумя датами вы можете попробовать выполнить запрос ниже

SELECT COUNT(*) 
FROM tableName
WHERE date(created_date) >= '2017-01-10' AND date(created_date) <= '2017-01-30'
  • 0
    Запрос ОП идентичен тому, что вы написали в своем ответе.
  • 1
    Я не думаю, что он идентичен created столбцу, преобразованному в DATE из DATETIME и таким образом он будет включать в себя все записи из диапазона дат и в него. Это исключит time при сравнении.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню