>  기사  >  백엔드 개발  >  MySQL 쿼리 시간에 대한 지식

MySQL 쿼리 시간에 대한 지식

小云云
小云云원래의
2017-11-16 12:01:081447검색

때때로 프로그래머는 시간 통계에 대한 일부 개발 작업에서 분리될 수 없어야 하고 다양한 보고서 데이터를 계산해야 하므로 시간을 쿼리하기 위해 필연적으로 MySQL을 사용하게 됩니다. MySQL 문은 모두 매우 길고 복잡하므로 시간에 대한 기본적인 SQL 통계 지식을 요약해 보겠습니다.

이제 다음과 같은 주문 데이터 테이블이 있다고 가정합니다.

 CREATE TABLE `order` (    
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,    
`order_sn` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '订单编号,保证唯一',    
`create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',    
`success_at` int(11) NOT NULL DEFAULT '0' COMMENT '订单完成时间',    
`creator_id` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '订单创建人',    
PRIMARY KEY (`id`),    
UNIQUE KEY `uni_sn` (`order_sn`),    
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单表';

이제 위 테이블을 예로 들어 관련 데이터를 쿼리합니다.

오늘 완료된 모든 주문 번호 쿼리:

SELECT `order_sn` FROM `order` WHERE YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d')) = date_format(now(),'%Y-%m-%d');

이번 주에 완료된 모든 주문 번호 쿼리:

SELECT `order_sn` FROM `order` WHERE YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d')) = YEARWEEK(now());

지난 주 완료된 주문 번호 모두 조회:

SELECT `order_sn` FROM `order` WHERE YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d')) = YEARWEEK(now())-1;

이번 달 완료된 주문 번호 모두 조회:

select `order_sn` from `order` where FROM_UNIXTIME(success_at,'%Y-%m')=date_format(now(),'%Y-%m');

지난 달 완료된 주문 번호 모두 조회:

select `order_sn` from `order` where FROM_UNIXTIME(success_at,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 month),'%Y-%m');

지금부터 6일 후 조회 월별 완료 주문 번호:

select `order_sn` from `order` where FROM_UNIXTIME(success_at,'%Y-%m-%d %H:%i:%s') between date_sub(now(),interval 6 month) and now();

이번 분기에 완료된 모든 주문 번호 쿼리:

select `order_sn` from `order` where QUARTER(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=QUARTER(now());

지난 분기에 완료된 모든 주문 번호 쿼리:

select `order_sn` from `order` where QUARTER(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

올해 완료된 모든 주문 번호 쿼리:

select `order_sn` from `order` where YEAR(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=YEAR(NOW());

전년도에 완료된 모든 주문 번호 쿼리:

select `order_sn` from `order` where year(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=year(date_sub(now(),interval 1 year));

현재 MySQL 쿼리 시간에 관한 프로젝트를 맡고 있습니다. 그렇다면 이 기사가 도움이 되기를 바랍니다.

관련 권장 사항:

PHP와 MySQL의 관계

MySQL 시간 및 날짜 쿼리 방법 및 함수

mysql 데이터베이스 차이 비교를 위해 PHP 코드를 사용하는 mysql 시간 함수

mysql 시간 저장 관련 문제

Mysql 시간 연산 함수 사용법 요약

위 내용은 MySQL 쿼리 시간에 대한 지식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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