Mysql
 sql >> Base de données >  >> RDS >> Mysql

PERIOD_ADD() Exemples – MySQL

MySQL a un PERIOD_ADD() fonction qui permet d'ajouter un nombre de mois à une période donnée. Il renvoie une valeur au format AAAAMM .

Cet article fournit des exemples pour montrer comment cela fonctionne.

Syntaxe

La syntaxe ressemble à ceci :

PERIOD_ADD(P,N)

P est le point, et N est le nombre de mois à ajouter.

Notez que, bien que cette fonction semble ajouter des mois à une date, l'argument période n'est pas réellement une valeur de date.

Exemple 1 - Utilisation de base

Voici un exemple de base.

SELECT PERIOD_ADD(202101,2);

Résultat :

+----------------------+| PERIOD_ADD(202101,2) |+----------------------+| 202103 |+----------------------+

Donc dans ce cas, nous avons ajouté deux mois à la période.

Exemple 2 – Valeurs négatives

Voici un exemple qui ajoute un nombre négatif de mois.

SELECT PERIOD_ADD(202101,-2);

Résultat :

+-----------------------+| PERIOD_ADD(202101,-2) |+-----------------------+| 202011 |+----------------------+

Exemple 3 – Années à deux chiffres

Cet exemple utilise un composant d'année à deux chiffres.

SELECT PERIOD_ADD(2101,2);

Résultat :

+--------------------+| PERIOD_ADD(2101,2) |+--------------------+| 202103 |+--------------------+

Vous remarquerez que le résultat utilise toujours une année à quatre chiffres (même si nous avons fourni l'argument de période comme une année à deux chiffres).

Exemple 4 - Utilisation de la date actuelle

Cet exemple dérive la période de la date actuelle. Il ajoute ensuite un mois à cette période.

SELECT CURDATE( ) AS 'Date actuelle', EXTRACT(YEAR_MONTH FROM CURDATE( )) AS 'Période actuelle', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM CURDATE( )), 1) AS 'Période suivante' ;

Résultat :

+-------------+-----------+-------------+ | Date actuelle | Période actuelle | Période suivante |+--------------+-----------+-------------+ | 2018-06-30 | 201806 | 201807 |+-------------+----------------+-------------+ 

Exemple 5 - Un exemple de base de données

Voici un exemple qui interroge une base de données.

USE sakila;SELECT payment_date AS 'Payment Date', EXTRACT(YEAR_MONTH FROM payment_date) AS 'Payment Period', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM payment_date), 12) AS 'Next Payment'FROM paymentWHERE payment_id =1; 

Résultat :

+---------------------+----------------+------- -------+| Date de paiement | Période de paiement | Prochain paiement |+---------------------+----------------+------- -------+| 2005-05-25 11:30:37 | 200505 | 200605 |+---------------------+----------------+-------- ------+