>  기사  >  데이터 베이스  >  mysql은 시간을 비교할 수 있나요?

mysql은 시간을 비교할 수 있나요?

(*-*)浩
(*-*)浩원래의
2019-05-10 11:32:2914433검색

시간 비교는 mysql에서 [ WHERE testdate >= '2018-09-12'; t1 WHERE testdate >= 20180912;]에서 testdate를 선택하세요.

mysql은 시간을 비교할 수 있나요?

최근에 잘못된 방식으로 날짜를 비교하고 있는 것을 발견했습니다. 예를 들어 다음 명령문에서 a 필드는 DATETIME 유형 열입니다.

select a from t1 where DATEDIFF(a, &#39;2018-09-11&#39;) < 0;

이 명령문은 날짜를 알아내는 것입니다. 2018-09-11 이전 레코드는 모두 있지만 이 문에 문제가 있습니다. a 필드가 인덱스된 경우 날짜 비교에 이 유형을 사용하면 쿼리에서 인덱스를 사용하지 않으므로 쿼리 성능이 저하됩니다.

추천 과정: MySQL 튜토리얼.

mysql은 시간을 비교할 수 있나요?

날짜 필드 비교에 대한 Mysql 문서를 읽어보세요. 날짜 비교를 수행할 때 mysql은 비교를 위해 자동으로 날짜를 숫자로 변환합니다. where 조건 이후에 문자열 형식 날짜를 사용하여 DATE, DATETIME, TIMESTAMP 및 TIME 유형 필드와 비교할 때 문자열 형식 요구 사항은 엄격하지 않습니다. "2018-09-와 같은 형식 구분 기호를 사용하여 날짜를 나타낼 수 있습니다. 11", "2018#09#11", "2018&09&11"은 mysql의 날짜와 모두 동일합니다. "20180911"과 같이 구분자가 없는 경우에는 "2018-09-11" 또는 구분자가 있는 다른 날짜와 동일합니다. 예를 들어, 아래 그림은

select a from t1 where a 6fda55bbf45a08e844ce7d93775c46a2, >=, 385eb75c3b5ad6f44037821bdc36be71= '2018-09-12';
SELECT testdate FROM t1 WHERE testdate >= 20180912;
SELECT MOD(testdate,100) FROM t1 WHERE testdate >= 20180912;
SELECT testdate FROM t1 WHERE testdate >= '20180912';

Mysql에서는 "0000-00-00"을 DATE 유형의 "0" 값(가상 날짜라고도 함)으로 저장할 수 있습니다. 일부 시나리오에서는 NULL 값을 저장하는 것보다 더 편리합니다. DATE 유형 필드에 잘못된 날짜 값이 저장되면 MySQL은 기본적으로 해당 값을 "0000-00-00"으로 저장합니다. "0" 값 저장이 허용되지 않는 경우 NO_ZERO_DATE 매개변수를 활성화합니다.

unix_timestamp 함수를 사용하여 문자 시간을 Unix 타임스탬프로 변환할 수도 있습니다.

아아아아

위 내용은 mysql은 시간을 비교할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.