В MySQL можете да използвате TO_DAYS()
функция, за да разберете колко дни са минали от ден 0 за определена дата. Например, можете да предадете днешната дата на тази функция и тя ще върне колко дни са минали от ден 0 .
Тази статия съдържа примери за демонстрация.
Синтаксис
Синтаксисът е така:
TO_DAYS(дата)
Където date
е датата, която да се използва в изчислението.
Пример
Ето пример за демонстрация.
SELECT TO_DAYS('1999-12-31');
Резултат:
<пред>+-----------------------+| TO_DAYS('1999-12-31') |+-----------------------+| 730484 |+-----------------------+Имайте предвид, че документацията на MySQL съветва, че тази функция не е предназначена за използване със стойности, които предхождат появата на Григорианския календар (1582 г.). Това е така, защото не взема предвид дните, които са били загубени при смяна на календара.
Пример 2 – Текуща дата
Ето пример за използване на текущата дата.
ИЗБЕРЕТЕ CURDATE(), TO_DAYS(CURDATE());
Резултат:
+------------+--------------------+| CURDATE() | TO_DAYS(CURDATE()) |+------------+--------------------+| 26.06.2018 | 737236 |+-----------+-------------------+
Първо, използвам CURDATE()
функция за връщане на текущата дата, след което предавам тази функция на TO_DAYS()
функция за връщане на броя дни, изминали от ден 0 .
TO_DAYS() срещу FROM_DAYS()
FROM_DAYS()
функцията е противоположна на TO_DAYS()
, който при дадена дата и дата връща номера на деня. Ето пример за демонстриране на връзката между тези две функции:
ИЗБЕРЕТЕ CURDATE(), TO_DAYS(CURDATE()), FROM_DAYS(TO_DAYS(CURDATE()));
Резултат:
+------------+--------------------+------------ -------------------+| CURDATE() | TO_DAYS(CURDATE()) | FROM_DAYS(TO_DAYS(CURDATE())) |+-----------+--------------------+----- -------------------------+| 26.06.2018 | 737236 | 26-06-2018 |+-----------+-------------------+--------- ---------------------+
Така че в този пример използвам TO_DAYS()
за да върнете броя на дните от текущата дата. След това използвам FROM_DAYS()
за да върне датата от тази стойност (която, както се очаква, се разрешава обратно до първоначалната стойност на CURDATE()
).