sql >> Database teknologi >  >> RDS >> Mysql

PERIOD_ADD() Eksempler – MySQL

MySQL har en PERIOD_ADD() funktion, der giver dig mulighed for at tilføje et antal måneder til en given periode. Det returnerer en værdi i formatet ÅÅÅÅMM .

Denne artikel giver eksempler for at demonstrere, hvordan det virker.

Syntaks

Syntaksen ser sådan ud:

PERIOD_ADD(P,N)

Hvor P er perioden, og N er antallet af måneder, der skal tilføjes.

Bemærk, at selvom denne funktion ser ud til at tilføje måneder til en dato, er periodeargumentet faktisk ikke en datoværdi.

Eksempel 1 – Grundlæggende brug

Her er et grundlæggende eksempel.

VÆLG PERIOD_ADD(202101,2);

Resultat:

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

Så i dette tilfælde tilføjede vi to måneder til perioden.

Eksempel 2 – Negative værdier

Her er et eksempel, der tilføjer et negativt antal måneder.

SELECT PERIOD_ADD(202101,-2);

Resultat:

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

Eksempel 3 – To cifrede år

Dette eksempel bruger en tocifret årstalskomponent.

VÆLG PERIOD_ADD(2101,2);

Resultat:

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

Du vil bemærke, at resultatet stadig bruger et firecifret år (selvom vi har angivet periodeargumentet som et tocifret år).

Eksempel 4 – Brug af den aktuelle dato

Dette eksempel udleder perioden fra den aktuelle dato. Det tilføjer derefter en måned til den periode.

VÆLG CURDATE( ) AS 'Current Date', EXTRACT(YEAR_MONTH FROM CURDATE( )) AS 'Current Period', PERIOD_ADD(EXTRACT(YEAR_MONTH FROM CURDATE( )), 1) AS 'Next Period';

Resultat:

+-------------+----------------+------------+ | Nuværende dato | Nuværende periode | Næste periode |+--------------+----------------+------------+ | 30-06-2018 | 201806 | 201807 |+--------------+----------------+------------+

Eksempel 5 – Et databaseeksempel

Her er et eksempel, der forespørger i en database.

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;

før>

Resultat:

+---------------------+----------------+------- -------+| Betalingsdato | Betalingsperiode | Næste betaling |+---------------------+----------------+------- -------+| 25-05-2005 11:30:37 | 200505 | 200605 |+---------------------+----------------+-------- ------+

  1. 5 Fejl i databasedesign, der skal undgås

  2. Skift PostgreSQL-kolonner, der bruges i visninger

  3. Sådan ændres tegnsæt fra latin1 til UTF8 i MySQL

  4. MySQL-udløser ved Indsæt/Opdater begivenheder