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!