MySQL에서 날짜 범위 사이의 데이터를 어떻게 선택합니까? 내 datetime
열은 24 시간 줄 루어 시간 형식입니다.
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
쿼리 에 입력해야합니까?
답변
날짜 형식을 업데이트해야합니다.
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;
답변
다음은 날짜 함수를 사용하는 간단한 방법입니다.
select *
from hockey_stats
where date(game_date) between date('2012-11-03') and date('2012-11-05')
order by game_date desc
답변
간단한 방법 :
select * from hockey_stats
where game_date >= '2012-03-11' and game_date <= '2012-05-11'
답변
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를 사용해야 할 수 있습니다.)
답변
MySQL 날짜 형식은 YMD입니다. Y / M / D를 사용하고 있습니다. 그것은 잘못된 것입니다. 쿼리를 수정하십시오.
Y / M / D와 같이 날짜를 입력하면 데이터베이스에 null 값이 삽입됩니다.
PHP를 사용하고 있고 양식에서 얻은 날짜가 Y / M / D와 같으면 문을 사용하여이를 대체 할 수 있습니다.
out_date=date('Y-m-d', strtotime(str_replace('/', '-', $data["input_date"])))
답변
간단한 방법으로 다음과 같이 쿼리 할 수 있습니다.
select * from hockey_stats
where game_date between '2018-01-01' and '2018-01-31';
이것은 시간이 문제가되지 않는다면 작동합니다.
시간을 고려하면 다음과 같은 방식으로 따릅니다.
select * from hockey_stats where (game_date between '2018-02-05 01:20:00' and '2018-02-05 03:50:00');
이것은 MySQL 서버용입니다.
답변
당신도 사용자 수 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;
또는 MySQL이 날짜 YYYY : MM : DD HH : mm : SS를 처리하는 형식을 사용하고 쿼리를 다음과 같이 사용하십시오.
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;