Я хочу получить количество записей между двумя записями даты и времени. У меня есть столбец в моей таблице с именем 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'
Проблема, с которой вы сталкиваетесь, связана с тем, что 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
.
Попробуй это
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)
Для получения количества записей между двумя датами вы можете попробовать выполнить запрос ниже
SELECT COUNT(*)
FROM tableName
WHERE date(created_date) >= '2017-01-10' AND date(created_date) <= '2017-01-30'
created
столбцу, преобразованному в DATE
из DATETIME
и таким образом он будет включать в себя все записи из диапазона дат и в него. Это исключит time
при сравнении.