Проблем:
Искате да покажете вчерашната дата (без час) в база данни на 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