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

PERIOD_ADD() Esempi – MySQL

MySQL ha un PERIOD_ADD() funzione che consente di aggiungere un numero di mesi a un determinato periodo. Restituisce un valore nel formato AAAAMM .

Questo articolo fornisce esempi per dimostrare come funziona.

Sintassi

La sintassi è questa:

PERIOD_ADD(P,N)

Dove P è il punto e N è il numero di mesi da aggiungere.

Nota che, sebbene questa funzione sembri aggiungere mesi a una data, l'argomento del periodo non è in realtà un valore di data.

Esempio 1 – Utilizzo di base

Ecco un esempio di base.

SELECT PERIOD_ADD(202101,2);

Risultato:

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

Quindi, in questo caso, abbiamo aggiunto due mesi al periodo.

Esempio 2 – Valori negativi

Ecco un esempio che aggiunge un numero negativo di mesi.

SELECT PERIOD_ADD(202101,-2);

Risultato:

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

Esempio 3 – Anni a due cifre

Questo esempio utilizza un componente anno a due cifre.

SELECT PERIOD_ADD(2101,2);

Risultato:

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

Noterai che il risultato utilizza ancora un anno a quattro cifre (anche se abbiamo fornito l'argomento del periodo come un anno a due cifre).

Esempio 4:utilizzo della data corrente

Questo esempio deriva il periodo dalla data corrente. Quindi aggiunge un mese a quel periodo.

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

Risultato:

+--------------+----------------+-------------+
| Current Date | Current Period | Next Period |
+--------------+----------------+-------------+
| 2018-06-30   |         201806 |      201807 |
+--------------+----------------+-------------+

Esempio 5:un esempio di database

Ecco un esempio che interroga un 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 payment
WHERE payment_id = 1;

Risultato:

+---------------------+----------------+--------------+
| Payment Date        | Payment Period | Next Payment |
+---------------------+----------------+--------------+
| 2005-05-25 11:30:37 |         200505 |       200605 |
+---------------------+----------------+--------------+