MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как да получите името на краткия ден от дата в MariaDB

В MariaDB можете да използвате DATE_FORMAT() функция за връщане на различни части от дата от дата. Едно от нещата, които можете да върнете, е краткото име на деня. Например Tue или Wed (вместо Tuesday или Wednesday ).

Определителят на формата „Short Day Name“ (%a )

Ключът за връщане на краткото име на деня при използване на DATE_FORMAT() функцията е да се използва приложимият спецификатор на формат.

В MariaDB спецификаторът на формата за краткото име на деня е:%a

Пример

Ето пример за демонстрация:

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

Резултат:

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

Ето още един пример, който минава през различните дни от седмицата:

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

Резултат:

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

Можете да върнете и други единици за дата и час, но тази статия е специално за връщането на краткото име на деня. Вижте MariaDB Format String за списък с спецификатори на формат, които могат да се използват с DATE_FORMAT() .

Други подходи

Има и други начини да получите краткото име на деня от дата, които включват отрязване на първата част от деня.

Това обаче може да бъде по-податливо на грешки от горния метод (плюс това е по-сложен). Можете да получите някои неочаквани резултати, когато използвате този метод, особено когато работите с различни езици.

Ето няколко примера, които да демонстрират какво имам предвид.

Вместо да използвате %a спецификатор на формат, както направихме в предишния пример, можем да използваме %W спецификатор на формат, за да върне пълното име на деня, след което върнете съкратете този резултат с функция като LEFT() .

Пример:

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

Резултат:

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

Като алтернатива бихме могли да използваме функция като CAST() за да конвертирате в тип данни само с три знака, като този:

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

Резултат:

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

Това работи добре при работа с английски език (и може би някои други езици). Но нека видим какво се случва, когато преминем към друг език – да речем японски:

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

Резултат:

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

В този случай няма разлика.

За разлика от това, ето какво се случва, когато използваме %a спецификатор на формат, за да върне краткото име на деня:

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

Резултат:

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

Затова бих препоръчал да използвате %a спецификатор на формат, когато е възможно.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи SEC_TO_TIME() в MariaDB

  2. Използвайте mycli и научете MariaDB/MySQL удобно в терминал!

  3. Основи за криптиране на база данни на MariaDB сървър

  4. Как да управлявате MariaDB 10.3 с ClusterControl

  5. Стартиране на Vitess и MySQL с ClusterControl