Maison >développement back-end >tutoriel php >Connaissance du temps de requête MySQL
Parfois, les programmeurs doivent être indissociables de certains travaux de développement sur les statistiques de temps et doivent compter diverses données de rapport. Nous utiliserons inévitablement MySQL pour interroger le temps. Les instructions MySQL sont toutes très longues et complexes, je vais donc résumer pour vous quelques connaissances statistiques de base SQL sur le 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));
Si vous reprenez un projet maintenant, oui Concernant le projet de temps de requête MySQL, je j'espère que cet article pourra vous aider.
Recommandations associées :
La relation entre PHP et MySQL
Méthodes et fonctions de requête d'heure et de date MySQL
Problèmes liés au stockage de temps MySQL
Fonction de fonctionnement du temps MySQL Résumé d'utilisation
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!