Maison > base de données > tutoriel mysql > Comment générer des dates consécutives et des affectations de variables dans MySQL

Comment générer des dates consécutives et des affectations de variables dans MySQL

王林
Libérer: 2023-06-02 21:55:12
avant
1524 Les gens l'ont consulté

1. Dates consécutives de production

Description : est principalement utilisé pour certaines données statistiques à afficher par ordre chronologique
Si les données de la base de données présentent des lacunes ; Données quotidiennes, mais les statistiques doivent être affichées chaque jour, même si elles sont 0, alors un calendrier doit être généré pour être utilisé

Requête des données de la base de données : #🎜🎜 ; #

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' )
Copier après la connexion

Les données seront publiées le lendemain :

Comment générer des dates consécutives et des affectations de variables dans MySQL

Ça n'aurait-il pas l'air mauvais ? Si vous devez le faire, il est indiqué d'ajouter une commande par 1 desc pour la trier, vous pouvez aussi...

Mais même si elle est réglée, l'heure est incohérente ; 🎜#Générer les dates des 7 derniers jours : #🎜 🎜#

// 方法笨,但还是有效的
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
Copier après la connexion

Heure générée :

#🎜🎜 #Utilisation après génération :

-- 生成后左右链接即可,但主表要为时间表
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 ;
Copier après la connexion
Comment générer des dates consécutives et des affectations de variables dans MySQL

Après utilisation :

# 🎜🎜#

Voici la base de données Il n'y a pas de données...vous ne pouvez donc pas voir l'affichage de la quantité2 Assignation des variables

Vous voyez là. y a-t-il beaucoup de symboles @ dans le premier, n'est-ce pas ? Ce sont toutes des variables. Si l'instruction de requête est insérée, l'instruction de requête entière sera trop volumineuse et sera très longue... donc certaines choses peuvent être divisées. ; Comment générer des dates consécutives et des affectations de variables dans MySQL

Par exemple, dans l'instruction de base de données de requête : #🎜🎜 #

Jetons un coup d'oeil à leurs vrais visages :

#  查询部门区域编号
SELECT @dep_BH:=(SELECT area_code FROM qc_department WHERE dept_name = "历下区");
#  查询部门等级
SELECT @dep_DJ:=(SELECT dept_level FROM qc_department WHERE dept_name = "历下区");
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal