Come estrarre la data in MySQL con MySQL DATE
Il comando MySQL DATE vi permette di estrarre il valore di una data da un’indicazione temporale. Questa funzione è particolarmente utile per elenchi contenenti ordini, chiamate o per altre operazioni.
Che cos’è MySQL DATE?
Numerosi utili parametri permettono di avere una migliore visione d’insieme e tenere in ordine i dati in MySQL, nonché di organizzare meglio le diverse tabelle garantendo un accesso ancora più rapido quando è necessario. A tal fine, il sistema di gestione di database offre diversi tipi di campi per indicare date e tempi.
Oltre a MySQL TIME, MySQL DATETIME e MySQL TIMESTAMP, anche MySQL DATE è un comando particolarmente pratico e semplice al tempo stesso, che offre un aiuto prezioso nel vostro lavoro quotidiano con il sistema.
Potete utilizzare MySQL DATE con valori che contengono una data, ma che non includono indicazioni temporali: la funzione estrae quindi la data da un’informazione e la visualizza. Le voci sono sempre memorizzate nel formato “YYYY-MM-DD” e l’intervallo di valori possibili va da “1000-01-01” a “9999-12-31”.
La sintassi di MySQL DATE
Se state imparano a utilizzare MySQL e conoscete già comandi come MySQL DELETE, MySQL REPLACE e MySQL CONCAT, sapete già che la sintassi del sistema è relativamente semplice. MySQL DATE non fa eccezione; la struttura si presenta essenzialmente nel modo seguente:
DATE (espressione)
bashÈ importante che l’espressione contenga un valore consentito per la data. In caso contrario, l’output è semplicemente un valore zero.
Esempi di utilizzo di MySQL DATE
Per capire meglio le possibilità offerte da MySQL DATE è utile ricorrere ad alcuni esempi pratici. Partiamo dalla forma più semplice, che mostra soltanto l’informazione relativa alla data. Il relativo comando è il seguente:
SELECT DATE ("2022-01-10");
bashL’esecuzione di questo comando dà il seguente output:
2022-01-10
bashEstrazione di una data da un’indicazione temporale
È anche possibile utilizzare il comando MySQL DATE per estrarre una data da un’indicazione temporale più lunga. L’esempio seguente mostra questa opzione:
SELECT DATE ("2022-01-10 10:17:36");
bashAnche in questo caso l’output è:
2022-01-10
bashValore zero con MySQL DATE
Tuttavia, se non si immette un valore valido per la data, non viene restituito alcun output. Un esempio di un caso del genere è il seguente:
SELECT DATE ("La data è il 10.01.2022");
bashMySQL DATE per procedure d’ordine e contabilità
L’esempio seguente è particolarmente utile per comprendere i vantaggi pratici di MySQL DATE. Ipotizziamo che un’impresa abbia creato delle tabelle per i prodotti ordinati e quelli spediti. A questo punto, per risalire esattamente a quando un prodotto è stato ordinato, in teoria si dovrebbe dedicare parecchio tempo a spuntare manualmente tutti gli elenchi.
MySQL DATE offre invece un metodo nettamente più veloce per estrarre i dati dall’elenco già esistente. Il comando esegue un’apposita ricerca automatica nell’intera tabella: l’output mostra quindi tutti i dati degli ordini in ordine cronologico. Per il nostro esempio, ipotizziamo che il nome dell’elenco sia “Ordini”.
SELECT DATE (data ordine) FROM ordini;
bashIn questo caso, il relativo output si presenta così:
DATA (data ordine)
2021-11-27
2021-11-29
2022-01-10
2022-02-04
2022-02-17
bashComandi correlati
Oltre al comando MySQL DATE, sono disponibili anche altre funzioni correlate che vi aiutano nella gestione e nell’elaborazione di una tabella. In particolare, vale la pena menzionare MySQL DATEDIFF, che genera come output il numero di giorni compresi fra due date o indicazioni temporali.
Altri comandi importanti sono MySQL DATE_ADD, che aggiunge al valore di una data i valori di tempo sotto forma di intervallo, MySQL DATE_FORMAT, che permette di formattare una data, e MySQL DATE_SUB, con cui potete estrarre un valore di tempo dal valore di una data.
Formati alternativi per la data
Oltre a MySQL DATE, il sistema conosce altri tre formati per la data:
- MySQL DATETIME: questa opzione salva la data e l’ora nel formato YYYY-MM-DD HH:MI:SS. L’intervallo di tempo consentito va da 1000-01-01 00:00:00 a 9999-12-31 23:59:59.
- MySQL TIMESTAMP: questo formato è simile a MySQL DATETIME, ma tiene conto dei fusi orari e converte i rispettivi valori in tempo coordinato universale (UTC). Anche in questo caso l’output segue lo schema YYYY-MM-DD HH:MI:SS, ma i valori consentiti sono compresi fra 1970-01-01 00:00:01 UTC e 2038-01-09 03:14:17 UTC. MySQL TIMESTAMP è quindi la scelta giusta per le applicazioni che devono tenere conto di diversi fusi orari. Per le date prima del 1970 e dopo il 2038 si consiglia di utilizzare MySQL DATETIME.
- MySQL TIME: MySQL TIME memorizza l’ora, ma non la data. Il formato utilizzato è HH:MI:SS e l’intervallo di tempo consentito va da -838:59:59 a 838:59:59. MySQL TIME permette di mostrare anche gli intervalli di tempo, oltre a istanti specifici. Ad esempio, una giornata sarebbe indicata come 24:00:00.
Pertanto, se MySQL DATE non è la scelta più adatta, è possibile ricorrere anche a una delle altre opzioni.