기사 테이블 기사가 있습니다. 기사 추가 시간은 int(5) 유형입니다. 이제 오늘 추가된 총 기사 수를 쿼리하여 시간별로 정렬해야 합니다. 쿼리문은 다음과 같습니다.
SELECT * FROM `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d');또는
SELECT * FROM `article` where to_days(date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d')) = to_days(now());위 테이블의 add_time 필드의 저장 유형이 DATETIME 유형 또는 TIMESTAMP 유형이라고 가정하면 다음과 같이 쿼리문을 작성할 수도 있습니다. 다음 :
SELECT * FROM `article` where to_days(`add_time`) = to_days(now());
SELECT * FROM `article` where to_days(now()) – to_days(`add_time`) <= 1;
SELECT * FROM `article` where date_sub(curdate(), INTERVAL 7 DAY) <= date(`add_time`);
SELECT * FROM `article` where date_sub(curdate(), INTERVAL 30 DAY) <= date(`add_time`);
SELECT * FROM `article` where date_format(`add_time`, ‘%Y%m') = date_format(curdate() , ‘%Y%m');
SELECT * FROM `article` where period_diff(date_format(now() , ‘%Y%m') , date_format(`add_time`, ‘%Y%m')) =1;여러 기능 분석 위의 SQL 문에서:
mysql> select to_days('2010-11-22 14:39:51'); +--------------------------------+ | to_days('2010-11-22 14:39:51') | +--------------------------------+ | 734463 | +--------------------------------+ mysql> select to_days('2010-11-23 14:39:51'); +--------------------------------+ | to_days('2010-11-23 14:39:51') | +--------------------------------+ | 734464 | +--------------------------------+22일과 23일의 차이는 변환 후의 수가 1만큼 증가한 것을 알 수 있습니다. 이 세분화된 쿼리는 상대적으로 거칠고 때로는 쿼리 요구 사항을 충족하지 못할 수 있으므로 세분화된 쿼리를 사용해야 합니다. str_to_date 함수를 사용하면 이 함수의 사용법이 아래에서 분석됩니다.
mysql> select to_days('1997-10-07'), to_days('97-10-07'); -> 729669, 729669(2) str_to_date
mysql> select str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s'); +--------------------------------------------------------+ | str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s') | +--------------------------------------------------------+ | 2010-11-23 14:39:51 | +--------------------------------------------------------+구체적인 사례 작업은 다음과 같습니다.
select str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s') from article where str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')>='2012-06-28 08:00:00' and str_to_date(article.`add_time`,'%Y-%m-%d %H:%i:%s')<='2012-06-28 09:59:59';