Maison >base de données >tutoriel mysql >Comment puis-je créer un objet DATE dans MySQL à partir de champs jour, mois et année séparés ?

Comment puis-je créer un objet DATE dans MySQL à partir de champs jour, mois et année séparés ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 04:57:37457parcourir

How Can I Create a DATE Object in MySQL from Separate Day, Month, and Year Fields?

Créer un objet date à partir des champs jour, mois et année dans MySQL

Dans un schéma de base de données avec une table 'date' contenant des Dans les champs « jour », « mois » et « année », il devient nécessaire de créer un objet date pour les comparaisons. Cet article présente une solution pour construire un objet date à partir de ces valeurs entières.

À l'aide des fonctions MAKEDATE() et DATE_ADD(), un DATETIME peut être créé à partir des composants année, mois et jour. MAKEDATE() génère un DATETIME représentant le premier jour de l'année spécifiée. Par la suite, DATE_ADD() peut être appliqué pour ajouter les valeurs du mois et du jour.

Par exemple :

SELECT MAKEDATE(2013, 1);
+-------------------+
| MAKEDATE(2013, 1) |
+-------------------+
| 2013-01-01        |
+-------------------+

Pour incorporer les valeurs du mois et du jour :

SELECT DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH);
+---------------------------------------------------+
| DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH) |
+---------------------------------------------------+
| 2013-03-01                                        |
+---------------------------------------------------+

La combinaison de plusieurs appels DATE_ADD() permet une construction de date précise :

SELECT DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY);
| DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY) |
+----------------------------------------------------------------------------------+
| 2013-03-11                                                                       |
+----------------------------------------------------------------------------------+

Pour exécuter une requête de plage de dates à l'aide de ceci technique :

SELECT * FROM `date`
WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY)
BETWEEN '2013-01-01' AND '2014-01-01';

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