sql >> Databasteknik >  >> RDS >> Mysql

PERIOD_ADD() Exempel – MySQL

MySQL har en PERIOD_ADD() funktion som låter dig lägga till ett antal månader till en given period. Den returnerar ett värde i formatet ÅÅÅÅMM .

Den här artikeln ger exempel för att visa hur det fungerar.

Syntax

Syntaxen ser ut så här:

PERIOD_ADD(P,N)

Där P är perioden och N är antalet månader som ska läggas till.

Observera att även om den här funktionen verkar lägga till månader till ett datum, är periodargumentet faktiskt inte ett datumvärde.

Exempel 1 – Grundläggande användning

Här är ett grundläggande exempel.

VÄLJ PERIOD_ADD(202101,2);

Resultat:

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

Så i det här fallet lade vi till två månader till perioden.

Exempel 2 – Negativa värden

Här är ett exempel som lägger till ett negativt antal månader.

VÄLJ PERIOD_ADD(202101,-2);

Resultat:

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

Exempel 3 – Tvåsiffriga år

Det här exemplet använder en tvåsiffrig årskomponent.

VÄLJ PERIOD_ADD(2101,2);

Resultat:

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

Du kommer att märka att resultatet fortfarande använder ett fyrsiffrigt år (även om vi angav periodargumentet som ett tvåsiffrigt år).

Exempel 4 – Använda det aktuella datumet

Detta exempel härleder perioden från det aktuella datumet. Det lägger sedan till en månad till den perioden.

VÄLJ CURDATE( ) SOM "Current Date", EXTRACT(YEAR_MONTH FROM CURDATE( )) AS "Current Period", PERIOD_ADD(EXTRACT(YEAR_MONTH FROM CURDATE( )), 1) SOM "Next Period";

Resultat:

+--------------+----------------+-------------+ | Aktuellt datum | Nuvarande period | Nästa period |+--------------+----------------+-------------+ | 2018-06-30 | 201806 | 201807 |+--------------+----------------+------------+

Exempel 5 – Ett databasexempel

Här är ett exempel som frågar efter en databas.

ANVÄND 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; 

Resultat:

+---------------------+----------------+------- -------+| Betalningsdatum | Betalningsperiod | Nästa betalning |+---------------------+----------------+------- -------+| 2005-05-25 11:30:37 | 200505 | 200605 |+---------------------+----------------+-------- ------+

  1. Ladda Excel-datablad till Oracle-databasen

  2. Har inte databaslås! i android

  3. Kan jag få en plpgsql-funktion att returnera ett heltal utan att använda en variabel?

  4. Distribuerar MySQL Galera Cluster 4.0 på Amazon AWS EC2