Problem:
Du vill visa gårdagens datum (utan tid) i en Oracle-databas.
Lösning 1:
SELECT TO_DATE(current_date - 1) AS yesterday_date FROM dual
Om vi antar att det är 2020-09-24 idag är resultatet:
yesterday_date |
---|
2020-09-23 |
Diskussion:
För att få gårdagens datum måste du dra av en dag från idag. Använd current_date
för att få dagens datum. I Oracle kan du subtrahera valfritt antal dagar genom att helt enkelt subtrahera det numret från det aktuella datumet. Här, eftersom du behöver subtrahera en dag, använder du current_date - 1
. Sedan använder du TO_DATE()
funktion för att casta resultatet till kolumntypen date
.
Du kan gå tillbaka med vilket antal dagar du vill mycket enkelt, t.ex. med sju dagar.
SELECT TO_DATE(current_date - 7) AS date_week_ago FROM dual
Du kan också beräkna ett datum i framtiden. Till exempel, för att få morgondagens datum, lägger du till ett till current_date
:
SELECT TO_DATE(current_date + 1) AS tomorrow_date FROM dual