Maison  >  Article  >  développement back-end  >  Connaissance du temps de requête MySQL

Connaissance du temps de requête MySQL

小云云
小云云original
2017-11-16 12:01:081446parcourir

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

La fonction de temps MySQL utilise le code PHP pour la comparaison des différences de base de données 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!

Déclaration:
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