sql >> Databáze >  >> RDS >> MariaDB

MariaDB DAY() Vysvětleno

V MariaDB DAY() je synonymem pro DAYOFMONTH() . Vrátí den v měsíci z daného data.

Přijímá jeden argument, což je datum, ze kterého chcete vrátit den v měsíci.

Výsledek je v rozsahu 1 do 31 . Pokud však datum obsahuje část nula dne (například '0000-00-00' nebo '2021-00-00' ), výsledkem je 0 .

Syntaxe

Syntaxe vypadá takto:

DAY(date) 

Kde date je datum, ze kterého se má extrahovat den.

Příklad

Zde je příklad:

SELECT DAY('2045-05-18'); 

Výsledek:

+-------------------+| DEN('2045-05-18') |+-------------------+| 18 |+-------------------+

Hodnoty data a času

Funguje také s hodnotami datetime:

SELECT DAY('2045-05-18 01:10:15'); 

Výsledek:

+----------------------------+| DAY('2045-05-18 01:10:15') |+----------------------------+| 18 |+----------------------------+

Nula dnů

Zde je příklad, který používá nultý den v datu:

SELECT DAY('0000-00-00'); 

Výsledek:

+-------------------+| DAY('0000-00-00') |+-------------------+| 0 |+-------------------+

Číselná data

Je také možné předávat data jako číslo, pokud to dává smysl jako datum.

Příklad

SELECT DAY(20220308); 

Výsledek:

+----------------+| DEN(20220308) |+---------------+| 8 |+---------------+

Nebo dokonce následující (který používá dvouciferný rok):

SELECT DAY(220308); 

Výsledek:

+--------------+| DEN(220308) |+--------------+| 8 |+-------------+

Ale jako rande to musí dávat smysl. Když zvětším část dne na neplatný den, stane se toto:

SELECT DAY(220358); 

Výsledek:

+--------------+| DAY(220358) |+--------------+| NULL |+-------------+

Další oddělovače

Pro datum můžete použít jiné oddělovače. MariaDB je docela shovívavá, pokud jde o oddělovače dat. Zde je několik platných příkladů:

SELECT 
    DAY('2028/12/30'),
    DAY('2028,12,30'),
    DAY('2028:12:30'),
    DAY('2028;12!30'); 

Výsledek (při použití vertikálního výstupu):

DAY('2028/12/30'):30DAY('2028,12,30'):30DAY('2028:12:30'):30DAY('2028;12!30'):30 

Aktuální datum

Můžeme předat NOW() jako argument data pro použití aktuálního data:

SELECT 
    NOW(),
    DAY(NOW()); 

Výsledek:

+---------------------+------------+| NYNÍ() | DEN(NYNÍ()) |+---------------------+------------+| 2021-05-13 09:41:03 | 13 |+---------------------+------------+

Neplatné argumenty

Při předání neplatného argumentu DAY() vrátí null :

SELECT DAY('Oops!'); 

Výsledek:

+---------------+| DAY('Jejda!') |+---------------+| NULL |+--------------+

Chybí argument

Volání DAY() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT DAY(); 

Výsledek:

ERROR 1064 (42000):Máte chybu v syntaxi SQL; zkontrolujte příručku, která odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ')' na řádku 1

A další příklad:

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

Výsledek:

ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do manuálu, který odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ''2045-05-08')' na řádku 1

  1. postgres:upgradovat uživatele na superuživatele?

  2. Použití row_to_json() s vnořenými spojeními

  3. Vkládání do MySQL z PHP (jQuery/AJAX)

  4. Jak změním výchozí schéma ve vývojáři sql?