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

4 funkcje zwracające rok z daty w MariaDB

Poniżej znajdują się 4 funkcje umożliwiające zwrócenie roku od daty w MariaDB. Trzy funkcje zwracają tylko rok, a jedna zwraca zarówno rok, jak i tydzień.

YEAR() Funkcja

YEAR() funkcja zwraca rok dla podanej daty. Wynik mieści się w zakresie 1000 do 9999 lub 0 dla dat, które mają rok zerowy (np. 0000-00-00 ).

Przykład:

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

Wynik:

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

EXTRACT() Funkcja

EXTRACT () funkcja pozwala na wyodrębnienie określonej jednostki z daty. Dlatego możesz go użyć do wyodrębnienia roku (jak również innych jednostek) z daty.

Przykład:

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

Wynik:

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

DATE_FORMAT() Funkcja

DATE_FORMAT() funkcja umożliwia formatowanie daty na podstawie ciągu formatującego. Ciąg formatu określa sposób formatowania daty.

Możesz zatem użyć tej funkcji do zwrócenia roku (jak również dowolnej innej jednostki) od daty. Istnieją różne specyfikatory formatu zwracania roku w różnych formatach. Na przykład rok czterocyfrowy, rok dwucyfrowy itp.

Oto przykład, który zwraca rok w różnych formach:

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

Wynik:

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

Zauważ, że %x zwrócili inny numer roku niż pozostali.

Oto opis każdego z tych specyfikatorów formatu, który wyjaśnia, dlaczego %x zwrócił inny wynik:

Specyfikator formatu Opis
%X Rok czterocyfrowy, gdy pierwszym dniem tygodnia jest niedziela. Używane z %V .
%x Rok czterocyfrowy, gdy pierwszym dniem tygodnia jest poniedziałek. Używane z %v .
%Y Rok z 4 cyframi.
%y Rok z 2 cyframi.

A oto opis %V i %v zgodnie z powyższą tabelą:

Specyfikator formatu Opis
%V Numer tygodnia (01-53), gdy pierwszym dniem tygodnia jest niedziela. Używane z %X .
%v Numer tygodnia (01-53), gdy pierwszym dniem tygodnia jest poniedziałek. Używane z %x .

Możemy więc dodać te specyfikatory formatu do powyższego przykładu i uzyskać:

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

Wynik:

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

Zauważ, że %x nie zawsze zwróci inny rok – zależy to od faktycznie użytej daty. Czasami jest to %X który zwraca inny rok innym.

Przesuńmy datę do przodu o rok:

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

Wynik:

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

Tym razem jest to %X to jest dziwne. Jak wyjaśniono w powyższej tabeli, zależy to od tego, czy pierwszym dniem tygodnia jest niedziela czy poniedziałek.

Oczywiście, jeśli przejdziemy dalej do roku, wszystkie specyfikatory formatu zwracają ten sam rok:

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

Wynik:

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

Zobacz ciągi formatujące MariaDB, aby uzyskać pełną listę ciągów formatujących/specyfikatorów.

YEARWEEK() Funkcja

YEARWEEK() funkcja zwraca rok i tydzień dla podanej daty.

Przykład:

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

Wynik:

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

Rok w wyniku może być inny niż rok w argumencie data dla pierwszego i ostatniego tygodnia roku.

Oto, co się stanie, jeśli przejdziemy do przodu o rok:

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

Wynik:

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

YEARWEEK() funkcja akceptuje opcjonalny drugi argument do określenia trybu. Rzeczywisty wynik uzyskany z tej funkcji będzie zależał od używanego trybu. Jeśli argument mode zostanie pominięty, wartość default_week_format używana jest zmienna systemowa.

Zobacz, jak YEARWEEK() Działa w MariaDB, aby uzyskać więcej informacji o trybach i przykładach każdego z nich.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poprawka:Odmowa dostępu dla użytkownika „root”@”localhost” w MariaDB

  2. 4 sposoby na znalezienie wierszy zawierających wielkie litery w MariaDB

  3. Jak obliczyć wiek w MariaDB

  4. Pokaż sortowanie w MariaDB

  5. 8 sposobów na dodanie godziny do daty w MariaDB