In MariaDB, puoi usare DATE_FORMAT()
funzione per restituire varie parti di data da una data. Una delle cose che puoi restituire è il nome del giorno breve. Ad esempio Tue
o Wed
(anziché Tuesday
o Wednesday
).
L'identificatore di formato "Nome del giorno breve" (%a
)
La chiave per restituire il nome breve del giorno quando si utilizza DATE_FORMAT()
la funzione consiste nell'utilizzare l'identificatore di formato applicabile.
In MariaDB, l'identificatore di formato per il nome del giorno breve è:%a
Esempio
Ecco un esempio da dimostrare:
SELECT DATE_FORMAT('2023-07-25', '%a');
Risultato:
+---------------------------------+ | DATE_FORMAT('2023-07-25', '%a') | +---------------------------------+ | Tue | +---------------------------------+
Ecco un altro esempio che ripercorre i vari giorni della settimana:
SELECT
DATE_FORMAT('2023-07-24', '%a') AS "1",
DATE_FORMAT('2023-07-25', '%a') AS "2",
DATE_FORMAT('2023-07-26', '%a') AS "3",
DATE_FORMAT('2023-07-27', '%a') AS "4",
DATE_FORMAT('2023-07-28', '%a') AS "5",
DATE_FORMAT('2023-07-29', '%a') AS "6",
DATE_FORMAT('2023-07-30', '%a') AS "7";
Risultato:
+------+------+------+------+------+------+------+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +------+------+------+------+------+------+------+ | Mon | Tue | Wed | Thu | Fri | Sat | Sun | +------+------+------+------+------+------+------+
Puoi restituire anche altre unità di data e ora, ma questo articolo riguarda specificamente la restituzione del nome del giorno breve. Consulta le stringhe di formato MariaDB per un elenco di identificatori di formato che possono essere utilizzati con DATE_FORMAT()
.
Altri approcci
Esistono altri modi per ottenere il nome breve del giorno da una data che comporta l'interruzione della prima parte della giornata.
Tuttavia, questo può essere più soggetto a errori rispetto al metodo sopra (inoltre è più contorto). Potresti ottenere dei risultati imprevisti quando usi questo metodo, specialmente quando lavori con lingue diverse.
Ecco alcuni esempi per dimostrare cosa intendo.
Invece di usare il %a
identificatore di formato come abbiamo fatto nell'esempio precedente, potremmo usare il %W
specificatore di formato per restituire il nome completo del giorno, quindi restituire abbreviare quel risultato con una funzione come LEFT()
.
Esempio:
SELECT
DATE_FORMAT('2023-07-25', '%W') AS Full,
LEFT(DATE_FORMAT('2023-07-25', '%W'), 3) AS Short;
Risultato:
+---------+-------+ | Full | Short | +---------+-------+ | Tuesday | Tue | +---------+-------+
In alternativa potremmo usare una funzione come CAST()
per convertire in un tipo di dati con solo tre caratteri, come questo:
SELECT
DATE_FORMAT('2023-07-25', '%W') AS Full,
CAST(DATE_FORMAT('2023-07-25', '%W') AS CHAR(3)) AS Short;
Risultato:
+---------+-------+ | Full | Short | +---------+-------+ | Tuesday | Tue | +---------+-------+
Funziona bene quando si lavora con la lingua inglese (e forse alcune altre lingue). Ma vediamo cosa succede quando passiamo a un'altra lingua, ad esempio giapponese:
SELECT
DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;
Risultato:
+-----------+-----------+ | Full | Short | +-----------+-----------+ | 火曜日 | 火曜日 | +-----------+-----------+
In questo caso, non c'è differenza.
Al contrario, ecco cosa succede quando utilizziamo il %a
identificatore di formato per restituire il nome del giorno breve:
SELECT
DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;
Risultato:
+-----------+-------+ | Full | Short | +-----------+-------+ | 火曜日 | 火 | +-----------+-------+
Quindi ti consiglio di usare il %a
identificatore di formato quando possibile.