sql >> Database >  >> RDS >> Mysql

PERIOD_ADD() Voorbeelden – MySQL

MySQL heeft een PERIOD_ADD() functie waarmee u een aantal maanden aan een bepaalde periode kunt toevoegen. Het retourneert een waarde in de notatie JJJJMM .

Dit artikel geeft voorbeelden om te laten zien hoe het werkt.

Syntaxis

De syntaxis gaat als volgt:

PERIOD_ADD(P,N)

Waar P is de punt, en N is het aantal maanden dat moet worden toegevoegd.

Merk op dat, hoewel deze functie maanden lijkt toe te voegen aan een datum, het argument period eigenlijk geen datumwaarde is.

Voorbeeld 1 – Basisgebruik

Hier is een eenvoudig voorbeeld.

SELECT PERIOD_ADD(202101,2);

Resultaat:

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

Dus in dit geval hebben we twee maanden aan de periode toegevoegd.

Voorbeeld 2 – Negatieve waarden

Hier is een voorbeeld waarbij een negatief aantal maanden wordt opgeteld.

SELECT PERIOD_ADD(202101,-2);

Resultaat:

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

Voorbeeld 3 – Tweecijferige jaren

In dit voorbeeld wordt een jaarcomponent van twee cijfers gebruikt.

SELECT PERIOD_ADD(2101,2);

Resultaat:

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

U zult merken dat het resultaat nog steeds een jaartal van vier cijfers gebruikt (ook al hebben we het argument periode als een jaar van twee cijfers gegeven).

Voorbeeld 4 – De huidige datum gebruiken

In dit voorbeeld wordt de periode afgeleid van de huidige datum. Het voegt dan een maand toe aan die periode.

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

Resultaat:

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

Voorbeeld 5 – Een databasevoorbeeld

Hier is een voorbeeld dat een database doorzoekt.

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;

Resultaat:

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

  1. ORA-24408:kan geen unieke servergroepsnaam genereren

  2. Database herstellen vanuit noodmodus in SQL Server

  3. Hoe u identiteitskolomwaarden kunt krijgen zonder de naam van de identiteitskolom te vermelden in Select - SQL Server / T-SQL-zelfstudie, deel 46

  4. Snel verschillende waarden vinden