sql >> Database teknologi >  >> RDS >> MariaDB

3 måder at få dagens navn fra en dato i MariaDB

Nedenfor er tre metoder, du kan bruge til at få dagsnavnet fra en dato i MariaDB.

To af disse tilgange returnerer det fulde dagsnavn, og en returnerer navnet på den korte dag.

DAYNAME() Funktion

DAYNAME() funktion er designet specifikt til at returnere dagens navn fra en dato. Indsæt blot datoen, når du kalder funktionen, og den vil returnere hele dagens navn.

Eksempel:

SELECT DAYNAME('2021-08-19');

Resultat:

+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

Sproget, der bruges til dagsnavnet, styres af værdien af ​​lc_time_names systemvariabel. Se DAYNAME() for et eksempel på, hvordan dette påvirker outputtet.

DATE_FORMAT() Funktion

DATE_FORMAT() funktion formaterer en given dato til et specificeret format. Du angiver datoen og formatet, når du kalder funktionen.

Du kan returnere hele ugedagsnavnet ved at indtaste %W som formatstrengen.

Eksempel:

SELECT DATE_FORMAT('2021-08-19', '%W');

Resultat:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

Som med DAYNAME() , det sprog, der bruges til dagsnavnet, styres af værdien af ​​lc_time_names systemvariabel. Men DATE_FORMAT() funktion accepterer et valgfrit tredje argument, der giver dig mulighed for at angive lokaliteten.

Her er et eksempel på angivelse af en lokalitet:

SELECT DATE_FORMAT('2021-08-19', '%W', 'ca_ES');

Resultat:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

Navn på kort dag

Sender %a til DATE_FORMAT() funktion returnerer det korte ugedagsnavn.

Eksempel:

SELECT DATE_FORMAT('2021-08-19', '%a');

Resultat:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

Dette kunne replikeres med DAYNAME() funktion ved at bruge LEFT() for at få fat i de første 3 tegn fra ugedagsnavnet.

Eksempel:

SELECT LEFT(DAYNAME('2021-08-19'), 3);

Resultat:

+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

Den samme effekt kunne også opnås ved at bruge en funktion som CAST() at konvertere resultatet til en datatype med tre tegn.

Men selvom denne tilgang virker i en_US , det virker måske ikke altid på andre sprog. For eksempel:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2021-08-19', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

Resultat:

+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+

  1. Spring Boot Query-annotering med nativeQuery virker ikke i Postgresql

  2. Sådan opretter du en formular med formularguiden

  3. Brug PARSENAME() til at returnere en del af et objektnavn i SQL Server

  4. NodeJS Postgres fejl getaddriinfo ENOTFOUND