Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menjana tarikh berturut-turut dan tugasan berubah dalam mysql

Bagaimana untuk menjana tarikh berturut-turut dan tugasan berubah dalam mysql

王林
Lepaskan: 2023-06-02 21:55:12
ke hadapan
1522 orang telah melayarinya

1. Pengeluaran tarikh berturut-turut

Penjelasan: digunakan terutamanya untuk beberapa data statistik untuk dipaparkan dalam susunan kronologi
Jika data pangkalan data mempunyai data untuk hari berikutnya, statistik tidak akan berfungsi. Jika ia perlu dipaparkan setiap hari, walaupun ia adalah 0, maka jadual waktu mesti dijana untuk digunakan

Data pangkalan data pertanyaan:

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' )
Salin selepas log masuk

output setiap hari data: >

Bagaimana untuk menjana tarikh berturut-turut dan tugasan berubah dalam mysql

tidakkah ini kelihatan buruk? , anda juga boleh...

Tetapi walaupun apabila diatur, masanya juga tidak konsisten

menjana tarikh 7 hari terakhir:

// 方法笨,但还是有效的
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
Salin selepas log masuk

menjana masa:

Bagaimana untuk menjana tarikh berturut-turut dan tugasan berubah dalam mysql

Penggunaan selepas generasi:

-- 生成后左右链接即可,但主表要为时间表
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 ;
Salin selepas log masuk

Kesan selepas penggunaan:

Bagaimana untuk menjana tarikh berturut-turut dan tugasan berubah dalam mysql

Saya tiada data dalam pangkalan data di sini...jadi saya tidak dapat melihat kuantiti yang dipaparkan

2 🎜>Anda lihat terdapat banyak simbol @ dalam yang pertama, bukan? boleh dibahagikan;

#  查询部门区域编号
SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "历下区");
#  查询部门等级
SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "历下区");
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menjana tarikh berturut-turut dan tugasan berubah dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan