내 데이터 인벤토리에는 시, 분, 초의 타임스탬프가 포함될 수 있습니다. 이제 연도, 월, 일만 있는 시간이 있으므로 이를 비교해야 합니다. 어떻게 판단하고 문의해야 하는지 알려주시면 감사하겠습니다.
내 데이터 인벤토리에는 시, 분, 초의 타임스탬프가 포함될 수 있습니다. 이제 연도, 월, 일만 있는 시간이 있으므로 이를 비교해야 합니다. 어떻게 판단하고 문의해야 하는지 알려주시면 감사하겠습니다.
여러 가지 방법이 있지만 퍼지 쿼리가 필요할 것 같아서 좀 더 이해하기 쉬운 방법으로 이야기하겠습니다
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>