Můžete použít DAYOFMONTH()
funkci v MySQL vrátit den v měsíci z data.
„Dnem v měsíci“ mám na mysli hodnotu mezi 1 a 31 (nebo 0 pro data s nulovou částí dne), na rozdíl od dne v týdnu, jako je pondělí atd.
Pokud například zadáte datum 2018-01-07 , DAYOFMONTH()
funkce vrátí 7 .
Syntaxe
Syntaxe vypadá takto:
DAYOFMONTH(date)
Kde date
je hodnota data, ze které chcete vrátit den v měsíci.
Příklad
Zde je příklad k demonstraci.
SELECT DAYOFMONTH('2020-06-18') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | 18 | +--------+
Pokud má část dne úvodní nulu, úvodní nula je z výsledku vynechána. Příklad:
SELECT DAYOFMONTH('2020-06-07') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | 7 | +--------+
Příklad databáze
Zde je příklad extrahování části dne ze sloupce při spuštění dotazu na databázi.
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFMONTH(payment_date) AS 'Day of Month' FROM payment WHERE payment_id = 1;
Výsledek:
+---------------------+--------------+ | Date/Time | Day of Month | +---------------------+--------------+ | 2005-05-25 11:30:37 | 25 | +---------------------+--------------+
Aktuální datum/čas
Zde je příklad extrahování části dne z aktuálního data a času (který je vrácen pomocí NOW()
funkce).
SELECT NOW(), DAYOFMONTH(NOW());
Výsledek:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2018-06-25 18:16:00 | 25 | +---------------------+-------------------+
Dalším způsobem, jak toho dosáhnout, je použít CURDATE()
funkce, která vrací pouze datum (ale ne čas).
SELECT CURDATE(), DAYOFMONTH(CURDATE());
Výsledek:
+------------+-----------------------+ | CURDATE() | DAYOFMONTH(CURDATE()) | +------------+-----------------------+ | 2018-06-25 | 25 | +------------+-----------------------+