MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak uzyskać krótką nazwę dnia z daty w MariaDB?

W MariaDB możesz użyć DATE_FORMAT() funkcja zwracająca różne części daty z daty. Jedną z rzeczy, które możesz zwrócić, jest krótka nazwa dnia. Na przykład Tue lub Wed (zamiast Tuesday lub Wednesday ).

Specyfikator formatu „Nazwa skróconego dnia” (%a )

Klucz do zwracania krótkiej nazwy dnia przy użyciu DATE_FORMAT() funkcją jest użycie odpowiedniego specyfikatora formatu.

W MariaDB specyfikator formatu dla krótkiej nazwy dnia to:%a

Przykład

Oto przykład do zademonstrowania:

SELECT DATE_FORMAT('2023-07-25', '%a');

Wynik:

+---------------------------------+
| DATE_FORMAT('2023-07-25', '%a') |
+---------------------------------+
| Tue                             |
+---------------------------------+

Oto kolejny przykład z różnych dni tygodnia:

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";

Wynik:

+------+------+------+------+------+------+------+
| 1    | 2    | 3    | 4    | 5    | 6    | 7    |
+------+------+------+------+------+------+------+
| Mon  | Tue  | Wed  | Thu  | Fri  | Sat  | Sun  |
+------+------+------+------+------+------+------+

Możesz również zwrócić inne jednostki daty i czasu, ale ten artykuł dotyczy zwracania krótkiej nazwy dnia. Zobacz ciągi formatujące MariaDB, aby uzyskać listę specyfikatorów formatu, których można używać z DATE_FORMAT() .

Inne podejścia

Istnieją inne sposoby na uzyskanie krótkiej nazwy dnia z daty, która polega na odcięciu pierwszej części dnia.

Jednak może to być bardziej podatne na błędy niż powyższa metoda (plus jest bardziej zawiła). Korzystając z tej metody, możesz uzyskać nieoczekiwane wyniki, zwłaszcza podczas pracy z różnymi językami.

Oto kilka przykładów, aby pokazać, o co mi chodzi.

Zamiast używać %a specyfikator formatu, tak jak w poprzednim przykładzie, możemy użyć %W specyfikator formatu, aby zwrócić pełną nazwę dnia, a następnie zwrócić skrócić ten wynik za pomocą funkcji takiej jak LEFT() .

Przykład:

SELECT 
    DATE_FORMAT('2023-07-25', '%W') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W'), 3) AS Short;

Wynik:

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

Moglibyśmy alternatywnie użyć funkcji takiej jak CAST() przekonwertować na typ danych składający się tylko z trzech znaków, na przykład:

SELECT 
    DATE_FORMAT('2023-07-25', '%W') AS Full,
    CAST(DATE_FORMAT('2023-07-25', '%W') AS CHAR(3)) AS Short;

Wynik:

+---------+-------+
| Full    | Short |
+---------+-------+
| Tuesday | Tue   |
+---------+-------+

Działa to dobrze podczas pracy z językiem angielskim (i być może z innymi językami). Zobaczmy jednak, co się stanie, gdy przejdziemy na inny język – powiedzmy japoński:

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    LEFT(DATE_FORMAT('2023-07-25', '%W', 'ja_JP'), 3) AS Short;

Wynik:

+-----------+-----------+
| Full      | Short     |
+-----------+-----------+
| 火曜日     | 火曜日     |
+-----------+-----------+

W tym przypadku nie ma różnicy.

Dla kontrastu, oto co się dzieje, gdy używamy %a specyfikator formatu do zwrócenia krótkiej nazwy dnia:

SELECT 
    DATE_FORMAT('2023-07-25', '%W', 'ja_JP') AS Full,
    DATE_FORMAT('2023-07-25', '%a', 'ja_JP') AS Short;

Wynik:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| 火曜日     | 火    |
+-----------+-------+

Dlatego polecam użycie %a specyfikator formatu, gdy tylko jest to możliwe.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak TIMESTAMPDIFF() działa w MariaDB

  2. Jak REGEXP działa w MariaDB

  3. Jak ADD_MONTHS() działa w MariaDB

  4. Co to jest klaster MariaDB Enterprise?

  5. Jak działa MONTH() w MariaDB