집 >데이터 베이스 >MySQL 튜토리얼 >mysql에서 연속 날짜와 변수 할당을 생성하는 방법
설명: 일부 통계 데이터에 시간순으로 표시하는 데 사용됩니다.
데이터베이스 데이터에 다음 날의 데이터가 있지만 통계가 매일 표시되어야 하는 경우 0이면 사용할 시간표를 생성하려면
데이터베이스 데이터 쿼리:
SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date, COUNT(1) AS numb FROM qc_task WHERE create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )
격일로 데이터 출력:
1씩 추가해야 하면 보기 좋지 않나요? desc 정렬할 수는 있지만 정렬해도 시간이 일치하지 않습니다.
최근 7일의 날짜 생성:
// 方法笨,但还是有效的 select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from (SELECT @num:=@num+1 as sj from (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, -- (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t1, -- 假如嫌弃生成的少,打来这个就行 (SELECT @num:=0) y) as timeList
시간 생성:
다음 이후 사용; 세대:
-- 生成后左右链接即可,但主表要为时间表 SELECT f.datetime, t.numb FROM (SELECT DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date, COUNT(1) AS numb FROM qc_task WHERE create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )) t right join (select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from (SELECT @num:=@num+1 as sj from (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, (SELECT @num:=0) y) as timeList) f on t.date = f.datetime ;
사용 후 효과:
데이터베이스에 데이터가 없어서...수량표시가 안보이네요2.변수할당많이보이네요. 첫 번째에 있는 @ 기호 맞죠? 쿼리문을 넣으면 전체 쿼리문이 너무 부풀어 오르고 길어질 것입니다. 그래서 일부 내용이 분리될 수 있습니다. 예를 들어, 쿼리 데이터베이스 문에서:
그들의 진짜 얼굴을 봅시다:
# 查询部门区域编号 SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "历下区"); # 查询部门等级 SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "历下区");
위 내용은 mysql에서 연속 날짜와 변수 할당을 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!