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.
Indice
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.