MySQL creare una semplice Stored Procedure la data di oggi

Prosegue il nostro studio delle funzioni MySQL per la gestione delle date e degli intervalli di tempo. Vedremo oggi come creare con MySQL una semplice Stored Procedure per la gestione de la data di oggi.

Abbiamo visto in un articolo precedente quali funzioni utilizza MySql per la gestione delle date e degli intervalli di tempo. In questo Blog abbiamo dedicato tanti articoli a MySQL con tanti esempi pratici. Occupiamoci ora di come creare con MySQL una semplice Stored Procedure, la data di oggi.

Come ottenere la data odierna con MySQL utilizzando le funzioni data integrate

A volte, potresti voler interrogare i dati da una tabella per ottenere righe con la colonna della data è oggi, ad esempio:

SELECT colonna
FROM tabella
WHERE
scadenza = data_odierna;

Per ottenere la data odierna, utilizziamo la funzione CURDATE () come segue:

mysql> SELECT CURDATE() data_odierna;
+--------------+
| data_odierna |
+--------------+
|  2020-04-11  |
+--------------+
1 row in set (0.0002 sec)

Oppure puoi ottenere la parte della data dall’ora corrente restituita dalla funzione NOW ():

mysql> SELECT DATE(NOW()) data_odierna;
+--------------+
| data_odierna |
+--------------+
|  2017-07-08  |
+--------------+
1 row in set (0.0002 sec)

Quindi la query per la ricerca di una scadenza dovrebbe essere modificata in:

SELECT colonna
FROM tabella
WHERE
scadenza = CURDATE();

Se la colonna scadenza contiene sia la data che la parte dell’ora, è necessario utilizzare la funzione DATE () per estrarre solo la parte della data e confrontarla con la data corrente:

SELECT colonna 
FROM tabella 
WHERE
DATE(scadenza) = CURDATE();

Creazione di una semplice Stored Procedure MySQL per il calcolo della data di oggi

Se si utilizza molto la funzione CURDATE () nelle query e si desidera sostituirla con la funzione datya_odierna() per rendere le query più leggibili, è possibile creare la propria funzione Sored Procedure denominata data_odierna() come segue:

DELIMITER $$
CREATE FUNCTION data_odierna()
RETURNS DATE
BEGIN
RETURN CURDATE();
END$$
DELIMITER ;

Ora puoi usare la funzione data_odierna() che hai creato come segue:

mysql> SELECT data_odierna();
+------------------+
| data_odierna() |
+------------------+
|    2020-04-11   |
+------------------+
1 row in set (0.0003 sec)

Si può ovviamente fare qualche variazione sul tema come ad esempio il calcolo della data di domani:

mysql> SELECT data_odierna() + interval 1 day Domani;
+---------------+
|     Domani      |
+---------------+
| 2020-04-12 |
+---------------+
1 row in set (0.0003 sec)

Oppure, ad esempio, calcolare la data di ieri:

mysql> SELECT data_odierna() - interval 1 day Ieri;
+---------------+
|          Ieri           |
+---------------+
| 2020-04-10 |
+---------------+
1 row in set (0.0003 sec)

In questo articolo abbiamo visto come con MySQL si può creare una semplice Stored Procedure per il calcolo della data odierna. Abbiamo anche visto una semplice funzione chiamata Stored Procedure con MySQL.