Можете да използвате DAYOFMONTH()
функция в MySQL за връщане на деня от месеца от дата.
Под „ден от месеца“ имам предвид стойност между 1 и 31 (или 0 за дати с нулев ден), за разлика от деня от седмицата, като понеделник и т.н.
Например, ако посочите дата 2018-01-07 , DAYOFMONTH()
функцията ще върне 7 .
Синтаксис
Синтаксисът е така:
DAYOFMONTH(дата)
Където date
е стойността на датата, от която искате да се върне деня от месеца.
Пример
Ето пример за демонстрация.
ИЗБЕРЕТЕ DAYOFMONTH('2020-06-18') КАТО 'Резултат';
Резултат:
+--------+| Резултат |+--------+| 18 |+--------+
Ако частта от деня има водеща нула, водещата нула се пропуска от резултата. Пример:
ИЗБЕРЕТЕ DAYOFMONTH('2020-06-07') КАТО 'Резултат';
Резултат:
+--------+| Резултат |+--------+| 7 |+-------+
Пример за база данни
Ето пример за извличане на частта за деня от колона при изпълнение на заявка към база данни.
ИЗПОЛЗВАЙТЕ sakila;ИЗБЕРЕТЕ pay_date КАТО 'Дата/час', DAYOFMONTH(payment_date) КАТО 'Ден от месеца'FROM paymentWHERE payment_id =1;
Резултат:
+---------------------+--------------+| Дата/Час | Ден от месеца |+---------------------+--------------+| 25.05.2005 11:30:37 | 25 |+---------------------+--------------+
Текуща дата/час
Ето пример за извличане на частта от деня от текущата дата и час (които се връщат с помощта на NOW()
функция).
ИЗБЕРЕТЕ СЕГА(), DAYOFMONTH(СЕГА());
Резултат:
<пред>+---------------------+-------------------+| СЕГА() | ДЕН МЕСЕЦ(СЕГА()) |+---------------------+-------------------+ | 25.06.2018 18:16:00 | 25 |+---------------------+---------------------+
Друг начин да направите това е да използвате CURDATE()
функция, която връща само датата (но не и часа).
ИЗБЕРЕТЕ CURDATE(), DAYOFMONTH(CURDATE());
Резултат:
+-----------+-----------------------+| CURDATE() | ДЕН МЕСЕЦ(CURDATE()) |+-----------+-----------------------+| 25.06.2018 | 25 |+-----------+-----------------------+