Peut-être aurons-nous un mal de tête lorsque nous aurons besoin de compter diverses données de rapport pendant le développement. Les instructions MySQL sont très longues et complexes, il y a donc toujours une solution. Je vais maintenant partager avec vous quelques bases de SQL sur les connaissances statistiques du temps.
Supposons maintenant qu'il existe un tel tableau de données de commande :
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='订单表';
Prenons maintenant le tableau ci-dessus comme exemple pour interroger les données associées :
Interrogez tous les numéros de commande complétés aujourd'hui :
SELECT `order_sn` FROM `order` WHERE YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d')) = date_format(now(),'%Y-%m-%d');
Interroger tous les numéros de commande complétés pour la semaine en cours :
SELECT `order_sn` FROM `order` WHERE YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d')) = YEARWEEK(now());
Interroger tous les numéros de commande complétés la semaine dernière :
SELECT `order_sn` FROM `order` WHERE YEARWEEK(FROM_UNIXTIME(success_at,'%Y-%m-%d')) = YEARWEEK(now())-1;
Interroger tous les numéros terminés numéros de commande du mois en cours :
select `order_sn` from `order` where FROM_UNIXTIME(success_at,'%Y-%m')=date_format(now(),'%Y-%m');
Interroger tous les numéros de commande complétés au cours du mois précédent :
select `order_sn` from `order` where FROM_UNIXTIME(success_at,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 month),'%Y-%m');
Interroger les numéros de commande terminés dans 6 mois :
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();
Interrogez tous les numéros de commande complétés pour ce trimestre :
select `order_sn` from `order` where QUARTER(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=QUARTER(now());
Interrogez tous les numéros de commande complétés pour le trimestre dernier :
select `order_sn` from `order` where QUARTER(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
Interrogez ceci Tous les numéros de commande complétés au cours de l'année :
select `order_sn` from `order` where YEAR(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=YEAR(NOW());
Interrogez tous les numéros de commande complétés au cours de l'année précédente :
select `order_sn` from `order` where year(FROM_UNIXTIME(success_at,'%Y-%m-%d'))=year(date_sub(now(),interval 1 year));
Le contenu ci-dessus correspond à l'heure du rapport de requête MySQL. Tutoriels associés, j'espère qu'il sera utile. à tout le monde.
Recommandations associées :
Connaissances liées au temps de requête MySQL
Exemple de code de la méthode de période de requête MySQL
Méthodes et fonctions MySQL pour interroger l'heure et la date
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!