Du kan använda DAYOFMONTH()
funktion i MySQL för att returnera dagen i månaden från ett datum.
Med "dag i månaden" menar jag ett värde mellan 1 och 31 (eller 0 för datum med nolldagar), i motsats till veckodagen, som måndag osv.
Till exempel, om du anger ett datum 2018-01-07 , DAYOFMONTH()
funktionen returnerar 7 .
Syntax
Syntaxen ser ut så här:
DAYOFMONTH(date)
Där date
är det datumvärde som du vill att dagen i månaden ska returneras från.
Exempel
Här är ett exempel att visa.
SELECT DAYOFMONTH('2020-06-18') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 18 | +--------+
Om dagsdelen har en inledande nolla, utelämnas den inledande nollan från resultatet. Exempel:
SELECT DAYOFMONTH('2020-06-07') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 7 | +--------+
Ett databasexempel
Här är ett exempel på att extrahera dagdelen från en kolumn när du kör en fråga mot en databas.
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFMONTH(payment_date) AS 'Day of Month' FROM payment WHERE payment_id = 1;
Resultat:
+---------------------+--------------+ | Date/Time | Day of Month | +---------------------+--------------+ | 2005-05-25 11:30:37 | 25 | +---------------------+--------------+
Aktuellt datum/tid
Här är ett exempel på att extrahera dagdelen från det aktuella datumet och tiden (som returneras med NOW()
funktion).
SELECT NOW(), DAYOFMONTH(NOW());
Resultat:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2018-06-25 18:16:00 | 25 | +---------------------+-------------------+
Ett annat sätt att göra detta är att använda CURDATE()
funktion, som endast returnerar datumet (men inte tiden).
SELECT CURDATE(), DAYOFMONTH(CURDATE());
Resultat:
+------------+-----------------------+ | CURDATE() | DAYOFMONTH(CURDATE()) | +------------+-----------------------+ | 2018-06-25 | 25 | +------------+-----------------------+