>  기사  >  백엔드 개발  >  mysql - 두 번의 연도, 월, 일이 같은지 비교하는 방법이 Php에 있습니까?

mysql - 두 번의 연도, 월, 일이 같은지 비교하는 방법이 Php에 있습니까?

WBOY
WBOY원래의
2016-12-01 01:27:321947검색

내 데이터 인벤토리에는 시, 분, 초의 타임스탬프가 포함될 수 있습니다. 이제 연도, 월, 일만 있는 시간이 있으므로 이를 비교해야 합니다. 어떻게 판단하고 문의해야 하는지 알려주시면 감사하겠습니다.

답글 내용:

내 데이터 인벤토리에는 시, 분, 초의 타임스탬프가 포함될 수 있습니다. 이제 연도, 월, 일만 있는 시간이 있으므로 이를 비교해야 합니다. 어떻게 판단하고 문의해야 하는지 알려주시면 감사하겠습니다.

여러 가지 방법이 있지만 퍼지 쿼리가 필요할 것 같아서 좀 더 이해하기 쉬운 방법으로 이야기하겠습니다
1. "년-월-일"로만 시간을 사용합니다. 타임스탬프로 변환하여 그날 0시에 시간을 얻습니다. time1;
2. 여전히 sorttime 함수를 사용하여 시간 +1을 얻거나 day 변수명이 time2 이므로 시간 노드가 2개 있습니다
3. 쿼리 사이에 사용하면 그날의 데이터를 모두 얻을 수 있습니다
========= 제가 이해한다면 틀렸습니다. 수정해 주시면 다시 시도하겠습니다. 변경 =========

두 가지 방법을 소개합니다. 첫 번째 방법을 추천합니다

  • 연, 월, 일이 동일하다면 특정 날짜 범위 내의 데이터를 조회하고, '2016-10-28'의 데이터를 조회하는 등 시간 범위를 적극적으로 제어한다는 의미입니다. '

<code>$st = strtotime("2016-10-28");
$et = strtotime("2016-10-28 23:59:59");
select * from table where date_field between $st and $et</code>
  • mysql 내장함수 직접 사용 FROM_UNIXTIME(date_field, '%Y%m%d')

<code>select * from table where FROM_UNIXTIME(date_field,'%Y%m%d') ="2016-10-28"
</code>

다음은 datetime형식sql

으로 저장된 필드입니다.
<code>select * from table where date_field between "2016-10-28" and "2016-10-28 23:59:59"</code>
<code>select * from table where DATE_FORMAT(date_field , '%Y%m%d') ="2016-10-28"</code>

데이터베이스의 날짜 형식이 동일한 경우 MySQL의 substr 함수를 사용하여 날짜를 가로채서 비교하세요.

포스터의 질문은 실제로 다음과 같습니다.
시간 필드를 기준으로 특정 날짜(예: 2016년 10월 28일)의 데이터를 쿼리합니다.

<code><?php
$min = strtotime('2016-10-28');
$max = strtotime('2016-10-29');
echo "select * from t where time >= $min and time < $max";
// 输出 select * from t where time >= 1477584000 and time < 1477670400</code>

시간 필드 시간이 타임스탬프가 아닌 날짜('YmdHis') 형식의 데이터를 저장하는 경우 다음을 수행할 수 있습니다.

<code>select * from t where time >= 20161028000000 and time < 20161029000000</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:mysql 쿼리문 문제다음 기사:mysql 쿼리문 문제