Problem:
Du vil gerne vise gårsdagens dato (uden tid) i en Oracle-database.
Løsning 1:
SELECT TO_DATE(current_date - 1) AS yesterday_date FROM dual
Forudsat at i dag er 2020-09-24, er resultatet:
yesterday_date |
---|
2020-09-23 |
Diskussion:
For at få gårsdagens dato skal du trække en dag fra i dag. Brug current_date
for at få dagens dato. I Oracle kan du trække et vilkårligt antal dage fra blot ved at trække det tal fra den aktuelle dato. Her, da du skal trække en dag fra, bruger du current_date - 1
. Så bruger du TO_DATE()
funktion til at caste resultatet til kolonnetypen date
.
Du kan nemt gå tilbage med et hvilket som helst antal dage, du ønsker, f.eks. syv dage.
SELECT TO_DATE(current_date - 7) AS date_week_ago FROM dual
Du kan også beregne en dato i fremtiden. For at få morgendagens dato f.eks. tilføjer du en til current_date
:
SELECT TO_DATE(current_date + 1) AS tomorrow_date FROM dual