[SQL] 어떻게 MySQL을 사용 두 날짜 사이 쿼리합니까?
SQL어떻게 MySQL을 사용 두 날짜 사이 쿼리합니까?
다음 쿼리 :
SELECT * FROM `objects`
WHERE (date_field BETWEEN '2010-09-29 10:15:55' AND '2010-01-30 14:15:55')
아무 것도 반환하지 않습니다.
나는 쿼리를 통해 작동하기에 충분한 데이터보다 더 있어야합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
해결법
-
==============================
1.두 번째 날짜 첫 번째 날짜 이전 (즉. 당신이 2010년 9월 29일 월 (30)부터 2010 년까지 조회된다). 날짜의 순서를 반대로하십시오 :
두 번째 날짜 첫 번째 날짜 이전 (즉. 당신이 2010년 9월 29일 월 (30)부터 2010 년까지 조회된다). 날짜의 순서를 반대로하십시오 :
SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')
-
==============================
2.귀하의 질의는 다음과 같이 일을해야한다
귀하의 질의는 다음과 같이 일을해야한다
select * from table between `lowerdate` and `upperdate`
시험
SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')
-
==============================
3.타입 날짜의 DATE_FIELD 있습니까? 또한 먼저 이전 날짜를 넣어해야합니다.
타입 날짜의 DATE_FIELD 있습니까? 또한 먼저 이전 날짜를 넣어해야합니다.
그것은해야한다:
SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')
-
==============================
4.DATE ()는 MySQL의 기능입니다만을 추출 날짜 또는 날짜의 날짜 부분 / 시간 표현
DATE ()는 MySQL의 기능입니다만을 추출 날짜 또는 날짜의 날짜 부분 / 시간 표현
SELECT * FROM table_name WHERE DATE(date_field) BETWEEN '2016-12-01' AND '2016-12-10';
-
==============================
5.@sabin에서 대답 한가 (시간 제외)에만 날짜 부분을 비교하고자하는 경우 힌트를 연장으로 :
@sabin에서 대답 한가 (시간 제외)에만 날짜 부분을 비교하고자하는 경우 힌트를 연장으로 :
비교하는 필드 형 날짜로부터입니다 만 날짜 비교를 위해 지정되는 경우,이 날짜는 내부적으로 날짜 값으로 변환됩니다. 이 수단이 다음 쿼리
SELECT * FROM `objects` WHERE (date_time_field BETWEEN '2010-01-30' AND '2010-09-29')
로 변환됩니다
SELECT * FROM `objects` WHERE (date_time_field BETWEEN '2010-01-30 00:00:00' AND '2010-09-29 00:00:00')
내부적으로.
이 결과에 차례 리드에 0시 0분 0초보다 시간 값보다와 2010-09-29에서 개체를 포함하지 않습니다!
날짜 2010-09-29 모든 개체가 너무 포함 할 필요가있는 경우 따라서, 비교하는 필드를 날짜로 변환 할 수있다 :
SELECT * FROM `objects` WHERE (DATE(date_time_field) BETWEEN '2010-01-30' AND '2010-09-29')
-
==============================
6.당신은 이하가보다 크거나 같은과와 비교하여, 수동으로 할 수 있습니다.
당신은 이하가보다 크거나 같은과와 비교하여, 수동으로 할 수 있습니다.
select * from table_name where created_at_column >= lower_date and created_at_column <= upper_date;
우리의 예제에서, 우리는 하루에 특정 날짜에서 데이터를 검색해야합니다. 우리는 하루의 시작부터 다른 날의 최신 초에 비교합니다.
select * from table_name where created_at_column >= '2018-09-01 00:00:00' and created_at_column <= '2018-09-05 23:59:59';
-
==============================
7.서버 측 또는 클라이언트 측에서 날짜 구성에 문제가 될 수 있습니다. 호스트가 스페인어, 프랑스어 또는 구성 할 때 나는 여러 데이터베이스에 공통의 문제가이 발견 한 형식 일 / 월 / 년 또는 mm / DD / YYYY에 영향을 미칠 수있는 그 무엇이든 ....
서버 측 또는 클라이언트 측에서 날짜 구성에 문제가 될 수 있습니다. 호스트가 스페인어, 프랑스어 또는 구성 할 때 나는 여러 데이터베이스에 공통의 문제가이 발견 한 형식 일 / 월 / 년 또는 mm / DD / YYYY에 영향을 미칠 수있는 그 무엇이든 ....
-
==============================
8.날짜로 그냥 캐스트 DATE_FIELD
날짜로 그냥 캐스트 DATE_FIELD
SELECT * FROM `objects` WHERE (cast(date_field as date) BETWEEN '2010-09-29' AND '2010-01-30' )
-
==============================
9.날짜 및 시간 값을 사용하는 경우, 날짜 시간이 아닌 날짜로 필드를 캐스팅해야합니다. 시도 :
날짜 및 시간 값을 사용하는 경우, 날짜 시간이 아닌 날짜로 필드를 캐스팅해야합니다. 시도 :
SELECT * FROM `objects` WHERE (CAST(date_field AS DATETIME) BETWEEN CAST('2010-09-29 10:15:55' AS DATETIME) AND CAST('2010-01-30 14:15:55' AS DATETIME))
-
==============================
10.주위 날짜를 전환하십시오 :
주위 날짜를 전환하십시오 :
2010-09-29 > 2010-01-30?
from https://stackoverflow.com/questions/3822648/how-do-i-query-between-two-dates-using-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 분할 쉼표는 오라클의 열 값을 분리 (0) | 2020.03.09 |
---|---|
[SQL] 수 있습니까 쉼표로 구분 한 열에 여러 행? [복제] (0) | 2020.03.09 |
[SQL] 어떻게 (또는 내가 수 있습니다) 여러 열에서 DISTINCT 선택합니까? (0) | 2020.03.09 |
[SQL] 이를 이미 없으면 만 행을 삽입 (0) | 2020.03.09 |
[SQL] 두 날짜 사이에 작업 일 카운트 (0) | 2020.03.09 |