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

4 функции за връщане на годината от дата в MariaDB

По-долу са 4 функции, които ви позволяват да върнете годината от дата в MariaDB. Три функции връщат само годината, а една връща и годината, и седмицата.

YEAR() Функция

YEAR() функцията връща годината за дадена дата. Резултатът е в диапазона 1000 до 9999 или 0 за дати с нулева година (като 0000-00-00 ).

Пример:

SELECT YEAR('2023-07-25');

Резултат:

+--------------------+
| YEAR('2023-07-25') |
+--------------------+
|               2023 |
+--------------------+

EXTRACT() Функция

EXTRACT () функцията ви позволява да извлечете определена единица от датата. Следователно можете да го използвате, за да извлечете годината (както и други единици) от датата.

Пример:

SELECT EXTRACT(YEAR FROM '2023-07-25');

Резултат:

+---------------------------------+
| EXTRACT(YEAR FROM '2023-07-25') |
+---------------------------------+
|                            2023 |
+---------------------------------+

DATE_FORMAT() Функция

DATE_FORMAT() функцията ви позволява да форматирате дата въз основа на низ за форматиране. Форматният низ указва как трябва да бъде форматирана датата.

Следователно можете да използвате тази функция, за да върнете годината (както и всяка друга единица) от датата. Има различни спецификатори на формат за връщане на годината в различни формати. Например четирицифрена година, двуцифрена година и т.н.

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

SELECT 
    DATE_FORMAT('2023-01-01', '%X') AS "%X",
    DATE_FORMAT('2023-01-01', '%x') AS "%x",
    DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2023-01-01', '%y') AS "%y";

Резултат:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2022 | 2023 | 23   |
+------+------+------+------+

Забележете, че %x върна номер на година, различен от останалите.

Ето описание на всеки от тези спецификатори на формат, което обяснява защо %x върна различен резултат:

Определител на формата Описание
%X Година с 4 цифри, когато първият ден от седмицата е неделя. Използва се с %V .
%x Година с 4 цифри, когато първият ден от седмицата е понеделник. Използва се с %v .
%Y Година с 4 цифри.
%y Година с 2 цифри.

И ето описание на %V и %v както е посочено в горната таблица:

Определител на формата Описание
%V Номер на седмицата (01-53), когато първият ден от седмицата е неделя. Използва се с %X .
%v Номер на седмицата (01-53), когато първият ден от седмицата е понеделник. Използва се с %x .

Така че можем да добавим тези спецификатори на формат към горния пример и да получим следното:

SELECT 
    DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
    DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";

Резултат:

+----------+----------+
| %X, %V   | %x, %v   |
+----------+----------+
| 2023, 01 | 2022, 52 |
+----------+----------+

Имайте предвид, че %x не винаги ще връща различна година - зависи от действителната използвана дата. Понякога е %X което връща различна година на останалите.

Нека преместим датата с една година напред:

SELECT 
    DATE_FORMAT('2024-01-01', '%X') AS "%X",
    DATE_FORMAT('2024-01-01', '%x') AS "%x",
    DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2024-01-01', '%y') AS "%y";

Резултат:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2024 | 2024 | 24   |
+------+------+------+------+

Този път е %X това е странното. Както е обяснено в таблицата по-горе, зависи от това дали първият ден от седмицата е неделя или понеделник.

Разбира се, ако преминем по-нататък в годината, всички спецификатори на формат връщат една и съща година:

SELECT 
    DATE_FORMAT('2024-12-12', '%X') AS "%X",
    DATE_FORMAT('2024-12-12', '%x') AS "%x",
    DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
    DATE_FORMAT('2024-12-12', '%y') AS "%y";

Резултат:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2024 | 2024 | 2024 | 24   |
+------+------+------+------+

Вижте MariaDB Format Strings за пълен списък с низове/спецификатори на формат.

YEARWEEK() Функция

YEARWEEK() функцията връща годината и седмицата за дадена дата.

Пример:

SELECT YEARWEEK('2023-01-01');

Резултат:

+------------------------+
| YEARWEEK('2023-01-01') |
+------------------------+
|                 202301 |
+------------------------+

Годината в резултата може да е различна от годината в аргумента за дата за първата и последната седмица от годината.

Ето какво се случва, ако продължим с една година напред:

SELECT YEARWEEK('2024-01-01');

Резултат:

+------------------------+
| YEARWEEK('2024-01-01') |
+------------------------+
|                 202353 |
+------------------------+

YEARWEEK() функцията приема незадължителен втори аргумент, за да посочи режима. Действителният резултат, който получавате от тази функция, ще зависи от използвания режим. Ако аргументът mode е пропуснат, стойността на default_week_format се използва системна променлива.

Вижте как YEARWEEK() Работи в MariaDB за повече информация относно режимите и примерите за всеки.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Надстройка на MariaDB 10.0 до 10.3.9 на Ubuntu 16.04

  2. Как работи DEGREES() в MariaDB

  3. Как TO_CHAR() работи в MariaDB

  4. Пълно MariaDB криптиране в покой и по време на транспорт за максимална защита на данните - първа част

  5. Автоматизация на бази данни с Puppet:Разгръщане на MySQL &MariaDB Galera Cluster