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

Как да получите краткото име на месеца от дата в MySQL

В MySQL можете да използвате DATE_FORMAT() функция с %b спецификатор на формат, за да върне краткото име на месеца. Например, можете да върнете Jan или Feb вместо January или Feb .

Пример

SELECT DATE_FORMAT('2035-01-18', '%b');

Резултат:

Jan

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

SELECT 
    DATE_FORMAT('2035-01-18', '%b') AS "1",
    DATE_FORMAT('2035-02-18', '%b') AS "2",
    DATE_FORMAT('2035-03-18', '%b') AS "3",
    DATE_FORMAT('2035-04-18', '%b') AS "4",
    DATE_FORMAT('2035-05-18', '%b') AS "5",
    DATE_FORMAT('2035-06-18', '%b') AS "6",
    DATE_FORMAT('2035-07-18', '%b') AS "7",
    DATE_FORMAT('2035-08-18', '%b') AS "8",
    DATE_FORMAT('2035-09-18', '%b') AS "9",
    DATE_FORMAT('2035-10-18', '%b') AS "10",
    DATE_FORMAT('2035-11-18', '%b') AS "11",
    DATE_FORMAT('2035-12-18', '%b') AS "12";

Резултат (с помощта на вертикален изход):

 1: Jan
 2: Feb
 3: Mar
 4: Apr
 5: May
 6: Jun
 7: Jul
 8: Aug
 9: Sep
10: Oct
11: Nov
12: Dec

Можете да върнете и други единици за дата и час, но тази статия е свързана с връщането на краткото име на месеца.

Вижте MySQL Спецификатори на формата на датата за списък с спецификатори на формат, които могат да се използват с DATE_FORMAT() .

Съкратете пълното име на месеца

Ако трябва да съкратите пълно име на месец, винаги можете да използвате функция като LEFT() за да върнете само първите три знака (или колкото са ви необходими).

Пример:

SELECT 
    DATE_FORMAT('2035-09-18', '%M') AS Full,
    LEFT(DATE_FORMAT('2035-09-18', '%M'), 3) AS Short;

Резултат:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| September | Sep   |
+-----------+-------+

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

SELECT 
    DATE_FORMAT('2035-09-18', '%M') AS Full,
    CAST(DATE_FORMAT('2035-09-18', '%M') AS CHAR(3)) AS Short;

Резултат:

+-----------+-------+
| Full      | Short |
+-----------+-------+
| September | Sep   |
+-----------+-------+
1 row in set, 1 warning (0.00 sec)

В този случай получаваме предупреждение, защото съкращаваме по-дълга стойност:

show warnings;

Резултат:

+---------+------+------------------------------------------------+
| Level   | Code | Message                                        |
+---------+------+------------------------------------------------+
| Warning | 1292 | Truncated incorrect CHAR(3) value: 'September' |
+---------+------+------------------------------------------------+

Съкращаването на името на месеца по този начин може да е добре, когато работите с езици като английски, но имайте предвид, че може да не върне същия резултат като при използване на %b спецификатор на формат.

За да демонстрирам какво имам предвид, ето какво се случва, когато превключвам сесията си да използвам тайландски език:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2023-10-25', '%M') AS Full,
    LEFT(DATE_FORMAT('2023-10-25', '%M'), 3) AS Truncated,
    DATE_FORMAT('2023-10-25', '%b') AS Short;

Резултат:

+--------------------+-----------+----------+
| Full               | Truncated | Short    |
+--------------------+-----------+----------+
| ตุลาคม             | ตุล        | ต.ค.     |
+--------------------+-----------+----------+

Съкращаването на пълното име на месеца връща различен резултат от използването на %b спецификатор на формат, за да върне краткото име на месеца.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извличам изображения от базата данни MySQL и да ги показвам в html таг

  2. SQL:Повторете ред с резултати няколко пъти и номерирайте редовете

  3. Функция MySQL LEAST() – Намерете най-малкия аргумент в списък с аргументи

  4. Пинкод база данни на Индия със скрипт за намиране на местоположение в php и jquery

  5. Броят на колоните не съвпада с броя на стойностите на ред 1