sql >> Base de Datos >  >> RDS >> Mysql

PERIOD_ADD() Ejemplos – MySQL

MySQL tiene un PERIOD_ADD() función que le permite agregar un número de meses a un período determinado. Devuelve un valor con el formato YYYYMM .

Este artículo proporciona ejemplos para demostrar cómo funciona.

Sintaxis

La sintaxis es así:

PERIOD_ADD(P,N)

Donde P es el punto, y N es el número de meses a agregar.

Tenga en cuenta que, aunque esta función parece agregar meses a una fecha, el argumento del período no es en realidad un valor de fecha.

Ejemplo 1:uso básico

Este es un ejemplo básico.

SELECT PERIOD_ADD(202101,2);

Resultado:

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

Entonces, en este caso, agregamos dos meses al período.

Ejemplo 2:valores negativos

Este es un ejemplo que suma una cantidad negativa de meses.

SELECT PERIOD_ADD(202101,-2);

Resultado:

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

Ejemplo 3:años de dos dígitos

Este ejemplo utiliza un componente de año de dos dígitos.

SELECT PERIOD_ADD(2101,2);

Resultado:

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

Notará que el resultado todavía usa un año de cuatro dígitos (aunque proporcionamos el argumento del período como un año de dos dígitos).

Ejemplo 4:uso de la fecha actual

Este ejemplo deriva el período de la fecha actual. Luego agrega un mes a ese período.

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

Resultado:

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

Ejemplo 5:un ejemplo de base de datos

Aquí hay un ejemplo que consulta una base de datos.

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;

Resultado:

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