Returns a specified part of a given date.
Syntax
DatePart(interval, date [,firstdayofweek[, firstweekofyear]])
Key
interval The interval of time to return.
date The dates to evaluate (Date).
firstdayofweek A constant (0-7) that specifies the first day of the week.
default=vbSunday (1).
firstweekofyear A constant (0-3) that specifies the first week of the year.
default = the week in which January 1 occurs (1).
| Interval | Description |
| yyyy | Year |
| q | Quarter |
| m | Month |
| y | Day of year |
| d | Day |
| w | Weekday |
| ww | Week |
| h | Hour |
| n | Minute |
| s | Second |
FirstWeekConstants:
0 vbUseSystem - Use the NLS API setting.
1 vbFirstJan1 - Start with week in which January 1 occurs (default).
2 vbFirstFourDays - Start with the first week that has at least four days in the new year.
3 vbFirstFullWeek - Start with first full week of the year.
The firstdayofweek argument will affect calculations that use week intervals.
To produce a correct ISO 8601 week of the year requires a function, if this is saved in a module it can be used in VBA or in an SQL query:
Function ISOWeekNum(dtmDate)
' Returns a WeekNumber from a date
Dim NearThurs
NearThurs = ((dtmDate+5) \ 7) * 7 - 2
ISOWeekNum = ((NearThurs - DateSerial(Year(NearThurs), 1, 1)) \ 7) + 1
End function
Msgbox "ISOWeekNumber: " & ISOWeekNum(cdate("2017-12-25"))
The DatePart() function can be used in VBA or in an SQL query.
Examples
In a query:
In VBA:
DatePart("d", Now)
DatePart("w", "Feb 12")
“An essential aspect of creativity is not being afraid to fail” ~ Edwin Land
Related:
Date - Return the current date.
DateAdd - Add a time interval to a date.
DateDiff - Return the time difference between two dates.
Weekday - Return the weekday (1-7) from a date.
WeekdayName - Return the day of the week.
Q200299 - Format or DatePart Functions return wrong Week number for last Monday in year.