Funktio laskee kahden päivämäärän eron tietyissä aikayksiköissä.
DateDiff(aikayksikkö, päivämäärä1, päivämäärä2[, viikonensimmäinenpäivä[, vuodenensimmäinenviikko]])
Funktio laskee päivämäärä2:n ja päivämäärä1:n erotuksen ja ilmoittaa sen aikayksiköissä. Jos päivämäärä1 on suurempi, tulos on negatiivinen. Aikayksikkö on joku seuraavista:
| aikayksikkö | merkitys |
| d | päivä |
| h | tunti |
| m | kuukausi |
| n | minuutti |
| q | vuosineljännes |
| s | sekunti |
| w | viikonpäivä |
| ww | viikko |
| y | vuodenpäivä |
| yyyy | vuosi |
Aikayksiköt päivä ja vuodenpäivä palauttavat päivämäärien eron päivissä - viikonpäivä ja viikko palauttavat eron viikoissa. Ero pyöristetään ylöspäin kokonaisluvuksi, mistä johtuen päivämäärien 31.12.2002 23:59:59 ja 1.1.2003 00:00:00 välissä katsotaan olevan vuosi, vaikka todellinen ero on sekunti.
Viikon ensimmäinen päivä on joku seuraavista:
| arvo | vakio | kuvaus |
| 0 | vbUseSystem | järjestelmän asetusten mukainen |
| 1 | vbSunday | sunnuntai (oletus) |
| 2 | vbMonday | maanantai |
| 3 | vbTuesday | tiistai |
| 4 | vbWednesday | keskiviikko |
| 5 | vbThursday | torstai |
| 6 | vbFriday | perjantai |
| 7 | vbSaturday | lauantai |
Vuoden ensimmäinen viikko on joku seuraavista:
| arvo | vakio | kuvaus |
| 0 | vbUseSystem | järjestelmän asetusten mukainen |
| 1 | vbFirstJan1 | viikko, jona on tammikuun ensimmäinen päivä (oletus) |
| 2 | vbFirstFourDays | viikko, jossa on vähintään neljä uuteen vuoteen kuuluvaa päivää |
| 3 | vbFirstFullWeek | vuoden ensimmäinen kokonainen viikko |
Esimerkki:
'välissä olevien päivien määrä
MsgBox DateDiff("d", "1.1.2003", "15.4.2003") '104
'välissä olevien kuukausien määrä - ensimmäinen päivämäärä on suurempi
MsgBox DateDiff("m", "15.4.2003", "1.1.2003") '-3
'sekunnista tulee vuosi!
MsgBox DateDiff("yyyy", "31.12.2002 23:59:59", "1.1.2003 00:00:00") '1