Подтвердить что ты не робот

Выбор данных между диапазоном дат

Как выбрать данные между диапазоном дат в MySQL. Мой столбец datetime находится в 24-часовом формате времени zulu.

select * from hockey_stats 
where game_date between '11/3/2012 00:00:00' and '11/5/2012 23:59:00' 
order by game_date desc;

Возвращает ничего, несмотря на наличие данных между этими периодами времени. Должен ли я принудительно вводить значения в полях 'from' и 'to' в datetime в запросе?

4b9b3361

Ответ 1

Вам необходимо обновить формат даты:

select * from hockey_stats 
where game_date between '2012-03-11 00:00:00' and '2012-05-11 23:59:00' 
order by game_date desc;

Ответ 2

Вот простой способ использования функции даты:

select *
from hockey_stats
where date(game_date) between date('2012-11-03') and date('2012-11-05')
order by game_date desc

Ответ 3

Простой способ:

select  * from  hockey_stats 
where  game_date >= '2012-03-11' and game_date  <= '2012-05-11'

Ответ 4

Вероятно, вам нужно использовать STR_TO_DATE:

select * from hockey_stats 
where
  game_date between STR_TO_DATE('11/3/2012 00:00:00', '%c/%e/%Y %H:%i:%s')
                and STR_TO_DATE('11/5/2012 23:59:00', '%c/%e/%Y %H:%i:%s') 
order by game_date desc;

(если game_date является строкой, вам может потребоваться использовать STR_TO_DATE)

Ответ 5

Формат даты в формате MySQL: Y-M-D. Вы используете Y/M/D. Это не правильно. измените свой запрос.

Если вы вставляете дату, например Y/M/D, она будет вводить значение null в базе данных.

Если вы используете PHP, и дата, которую вы получаете из формы, похожа на Y/M/D, вы можете заменить ее с помощью инструкции.

out_date=date('Y-m-d', strtotime(str_replace('/', '-', $data["input_date"])))