SQL Server har sin DATEADD()
funktion som lägger till ett intervall till ett datumvärde. MySQL:s DATE_ADD()
och ADDDATE()
för gör samma sak, liksom MariaDBs DATE_ADD()
och ADDDATE()
. SQLite har en DATE()
funktion som också ger möjlighet att lägga till ett intervall till ett givet datum.
Men PostgreSQL har ingen DATEADD()
eller motsvarande funktion.
Det betyder dock inte att vi inte kan lägga till datum i Postgres. Vi kan lägga till och subtrahera värden från datum med datum/tid-operatorer som +
och -
.
Exempel
Lägg till fem dagar till ett datum:
SELECT date '2027-05-20' + integer '5';
Resultat:
2027-05-25
Subtrahera fem dagar från ett datum med ett negativt belopp:
SELECT date '2027-05-20' + integer '-5';
Resultat:
2027-05-15
Subtrahera fem dagar från ett datum med minustecknet (-
):
SELECT date '2027-05-20' - integer '5';
Resultat:
2027-05-15
Lägg till fem veckor till ett datum, specificerat efter dagar:
SELECT date '2027-05-20' + integer '35';
Resultat:
2027-06-24
Lägg till fem veckor till ett datum med interval
:
SELECT date '2027-05-20' + interval '5 week';
Resultat:
2027-06-24 00:00:00
Lägg till fem månader till ett datum med interval
:
SELECT date '2027-05-20' + interval '5 month';
Resultat:
2027-10-20 00:00:00
Lägg till fem timmar till ett datum:
SELECT date '2027-05-20' + interval '5 hour';
Resultat:
2027-05-20 05:00:00
Lägg till fem minuter till ett datum:
SELECT date '2027-05-20' + interval '5 minute';
Resultat:
2027-05-20 00:05:00
Lägg till en tid till ett datum:
SELECT date '2027-05-20' + time '05:45';
Resultat:
2027-05-20 05:45:00