날짜와 함께보다 큼 연산자를 사용하는 방법은 무엇입니까?


106

여기서 무슨 일이 일어나고 있는지 전혀 모릅니다. 다음은 phpMyAdmin에서 바로 가져온 쿼리입니다.

SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';

그러나 시작 날짜가 2012-11-01 인 레코드를 포함하여 테이블의 모든 레코드가 일관되게 반환됩니다. 무엇을 제공합니까?


1
start_date 열이 날짜 또는 타임 스탬프 유형입니까?
Shamis Shukoor

답변:


190

start_date작은 따옴표로 묶어서 문자열 이되었으므로 backtick대신 사용하십시오.

SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';

1
타임 스탬프가 있으면 어떻게됩니까?
ichimaru

MySQL이 날짜 형식에 대해 약간 까다로워 보인다는 점에 유의하십시오. 2019/02/08 21:04:07 또는 2019-02-08 21:04:07은 미국 날짜 형식을 사용하여 예상 된 결과를 생성합니다. 02-08-2019 21:04:07은 훨씬 더 넓은 순을 캐스트합니다. .
David A. Gray

22

문에서 start_date 라는 문자열을 시간과 비교 하고 있습니다.
경우 시작일은 열이, 그것이어야한다

 
  SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
 

(아포스트로피 없음) 또는


SELECT * FROM `la_schedule` WHERE `start_date` >'2012-11-18';

(백틱 포함).

도움이 되었기를 바랍니다.



2

제 경우에는 칼럼이 모든 기록을 계속 제공하는 datetime이었습니다. 내가 한 일은 시간을 포함하는 것입니다. 아래 예를 참조하십시오.

SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';

0

나는 시도했지만 해결책 아래에서 발견 된 연구 후에는 작동하지 않았습니다.

SELECT * FROM my_table where DATE(start_date) > '2011-01-01';

Ref

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.