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