Проблем:
Искате да покажете вчерашната дата (без час) в база данни на Oracle.
Решение 1:
SELECT TO_DATE(current_date - 1) AS yesterday_date FROM dual
Ако приемем, че днес е 2020-09-24, резултатът е:
| yesterday_date |
|---|
| 23.09.2020 |
Дискусия:
За да получите вчерашната дата, трябва да извадите един ден от днешната. Използвайте current_date за да получите днешната дата. В Oracle можете да извадите произволен брой дни, просто като извадите това число от текущата дата. Тук, тъй като трябва да извадите един ден, използвате current_date - 1 . След това използвате TO_DATE() функция за прехвърляне на резултата към тип колона date .
Можете да се върнете назад с произволен брой дни, които искате много лесно, например със седем дни.
SELECT TO_DATE(current_date - 7) AS date_week_ago FROM dual
Можете също да изчислите дата в бъдещето. Например, за да получите утрешната дата, добавяте такава към current_date :
SELECT TO_DATE(current_date + 1) AS tomorrow_date FROM dual