Du kan bruge DAYOFMONTH()
funktion i MySQL for at returnere dagen i måneden fra en dato.
Med "dag i måneden" mener jeg en værdi mellem 1 og 31 (eller 0 for datoer med en dag på nul), i modsætning til ugedagen, såsom mandag osv.
For eksempel, hvis du angiver en dato 2018-01-07 , DAYOFMONTH()
funktion vil returnere 7 .
Syntaks
Syntaksen ser sådan ud:
DAYOFMONTH(date)
Hvor date
er den datoværdi, som du ønsker, at dagen i måneden skal returneres fra.
Eksempel
Her er et eksempel til at demonstrere.
SELECT DAYOFMONTH('2020-06-18') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 18 | +--------+
Hvis dagsdelen har et indledende nul, udelades det indledende nul fra resultatet. Eksempel:
SELECT DAYOFMONTH('2020-06-07') AS 'Result';
Resultat:
+--------+ | Result | +--------+ | 7 | +--------+
Et databaseeksempel
Her er et eksempel på udtrækning af dagsdelen fra en kolonne, når du kører en forespørgsel mod en database.
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 | +---------------------+--------------+
Aktuel dato/klokkeslæt
Her er et eksempel på udtrækning af dagsdelen fra den aktuelle dato og klokkeslæt (som returneres ved hjælp af NOW()
funktion).
SELECT NOW(), DAYOFMONTH(NOW());
Resultat:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2018-06-25 18:16:00 | 25 | +---------------------+-------------------+
En anden måde at gøre dette på er at bruge CURDATE()
funktion, som kun returnerer datoen (men ikke klokkeslættet).
SELECT CURDATE(), DAYOFMONTH(CURDATE());
Resultat:
+------------+-----------------------+ | CURDATE() | DAYOFMONTH(CURDATE()) | +------------+-----------------------+ | 2018-06-25 | 25 | +------------+-----------------------+