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

Jak DAYOFYEAR() działa w MariaDB

W MariaDB, DAYOFYEAR() to wbudowana funkcja daty i czasu, która zwraca dzień roku od podanej daty.

Przyjmuje jeden argument, czyli datę, z której chcesz wyodrębnić dzień w roku.

Zwraca dzień jako liczbę z zakresu 1 do 366 .

Składnia

Składnia wygląda tak:

DAYOFYEAR(date)

Gdzie date to data, z której należy pobrać dzień w roku.

Przykład

Oto przykład:

SELECT DAYOFYEAR('2030-12-25');

Wynik:

+-------------------------+
| DAYOFYEAR('2030-12-25') |
+-------------------------+
|                     359 |
+-------------------------+

Wartości daty i godziny

Działa również z wartościami daty i godziny:

SELECT DAYOFYEAR('2030-02-01 10:30:45');

Wynik:

+----------------------------------+
| DAYOFYEAR('2030-02-01 10:30:45') |
+----------------------------------+
|                               32 |
+----------------------------------+

Zero dni

Zero dni daje wynik null .

Przykład:

SELECT DAYOFYEAR('2030-00-00');

Wynik:

+-------------------------+
| DAYOFYEAR('2030-00-00') |
+-------------------------+
|                    NULL |
+-------------------------+

Daty numeryczne

Możliwe jest również przekazywanie dat jako liczby, o ile ma to sens jako data.

Przykład

SELECT DAYOFYEAR(20301125);

Wynik:

+---------------------+
| DAYOFYEAR(20301125) |
+---------------------+
|                 329 |
+---------------------+

Lub nawet następujący (który używa dwucyfrowego roku):

SELECT DAYOFYEAR(301125);

Wynik:

+-------------------+
| DAYOFYEAR(301125) |
+-------------------+
|               329 |
+-------------------+

Ale to musi mieć sens jako randka. Oto, co się stanie, jeśli zwiększę część dnia do nieprawidłowego dnia:

SELECT DAYOFYEAR(20300135);

Wynik:

+---------------------+
| DAYOFYEAR(20300135) |
+---------------------+
|                NULL |
+---------------------+

Inne ograniczniki

Możesz użyć innych ograniczników daty. MariaDB jest dość wyrozumiała, jeśli chodzi o ograniczniki dat. Oto kilka poprawnych przykładów:

SELECT 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25');

Wynik (przy użyciu wyjścia pionowego):

DAYOFYEAR('2030/06/25'): 176
DAYOFYEAR('2030,06,25'): 176
DAYOFYEAR('2030:06:25'): 176
DAYOFYEAR('2030;06!25'): 176

Aktualna data

Możemy przekazać NOW() jako argument daty, aby użyć bieżącej daty:

SELECT 
    NOW(),
    DAYOFYEAR(NOW());

Wynik:

+---------------------+------------------+
| NOW()               | DAYOFYEAR(NOW()) |
+---------------------+------------------+
| 2021-05-16 09:05:57 |              136 |
+---------------------+------------------+

Nieprawidłowe argumenty

Po przekazaniu nieprawidłowego argumentu DAYOFYEAR() zwraca null :

SELECT DAYOFYEAR('Friday');

Wynik:

+---------------------+
| DAYOFYEAR('Friday') |
+---------------------+
|                NULL |
+---------------------+

Brakujący argument

Wywołanie DAYOFYEAR() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT DAYOFYEAR();

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'

I kolejny przykład:

SELECT DAYOFYEAR('2030-01-25', '2045-05-08');

Wynik:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFYEAR'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wdrażanie replikacji MariaDB w celu zapewnienia wysokiej dostępności

  2. Jak FROM_UNIXTIME() działa w MariaDB

  3. Funkcje ciągów MariaDB (pełna lista)

  4. Szyfrowanie kopii zapasowej bazy danych — najlepsze praktyki

  5. Jak wykonać odzyskiwanie danych MySQL i MariaDB do określonego momentu za pomocą ClusterControl