Date & Time Functions
Date and time functions let you create dates, calculate durations, extract components like year or month, and perform date arithmetic. Use these to build deadline calculators, age verifiers, subscription billing, booking systems, or any logic that depends on dates.
All Date & Time Functions
Function | Purpose | Example |
|---|---|---|
DATE | Create a date | DATE(2024, 12, 25) |
DATETIME | Create or combine datetime | DATETIME(2024, 12, 25, 14, 30) |
CURRDATE / TODAY | Get current date | CURRDATE() |
CURRDATETIME | Get current datetime | CURRDATETIME() |
CURRTIME | Get current time | CURRTIME() |
ADDDAYS | Add or subtract days | ADDDAYS(CURRDATE(), 30) |
ADDHOURS | Add or subtract hours | ADDHOURS(CURRDATETIME(), 2) |
ADDMINUTES | Add or subtract minutes | ADDMINUTES(CURRDATETIME(), 45) |
ADDMONTHS | Add or subtract months | ADDMONTHS(CURRDATE(), 6) |
ADDSECONDS | Add or subtract seconds | ADDSECONDS(CURRDATETIME(), 90) |
ADDYEARS | Add or subtract years | ADDYEARS(CURRDATE(), 1) |
DATEDIFF | Calculate difference between dates | DATEDIFF(START_DATE, END_DATE, "days") |
DAYS | Whole days between two dates | DAYS(START_DATE, END_DATE) |
YEAR | Extract year | YEAR(CURRDATE()) |
MONTH | Extract month (1-12) | MONTH(CURRDATE()) |
DAY | Extract day of month | DAY(CURRDATE()) |
HOUR | Extract hour (0-23) | HOUR(CURRDATETIME()) |
MINUTE | Extract minute (0-59) | MINUTE(CURRDATETIME()) |
SECOND | Extract second (0-59) | SECOND(CURRDATETIME()) |
WEEKDAY | Day of week | WEEKDAY(CURRDATE()) |
WEEKNUM | ISO week number | WEEKNUM(CURRDATE()) |
TIMEVALUE | Convert time string to fraction | TIMEVALUE("14:30") |
Common Use Cases
Age Verification
IF(DATEDIFF(BIRTH_DATE, CURRDATE(), "years") >= 18, "Approved", "Must be 18+")Subscription Billing Calculator
RENEWAL_DATE = ADDMONTHS(START_DATE, 12)
DAYS_UNTIL_RENEWAL = DAYS(CURRDATE(), RENEWAL_DATE)
IF(DAYS_UNTIL_RENEWALBusiness Days Estimator
ESTIMATED_DATE = ADDDAYS(ORDER_DATE, 5)
IF(WEEKDAY(ESTIMATED_DATE) = 1, ADDDAYS(ESTIMATED_DATE, 1),
IF(WEEKDAY(ESTIMATED_DATE) = 7, ADDDAYS(ESTIMATED_DATE, 2),
ESTIMATED_DATE))Late Fee Calculator
DAYS_LATE = DAYS(DUE_DATE, CURRDATE())
IF(DAYS_LATE > 0, DAYS_LATE * 5, 0)Quarterly Report Check
CURRENT_QUARTER = CEILING(MONTH(CURRDATE()) / 3)
`Q${CURRENT_QUARTER} ${YEAR(CURRDATE())}`Function Categories
Creating Dates: DATE · DATETIME
Current Date/Time: CURRDATE · TODAY · CURRDATETIME · CURRTIME
Date Arithmetic: ADDDAYS · ADDMONTHS · ADDYEARS · ADDHOURS · ADDMINUTES · ADDSECONDS
Date Differences: DATEDIFF · DAYS
Extract Components: YEAR · MONTH · DAY · HOUR · MINUTE · SECOND
Week Functions: WEEKDAY · WEEKNUM
Time Conversion: TIMEVALUE
Common Mistakes
Months are 1-indexed: January = 1, not 0. DATE(2024, 0, 1) will error.
Using DATE when you need DATETIME: ADDHOURS requires a datetime value, not just a date.
Wrong DATEDIFF parameter order: It's (start, end, unit), not (end, start, unit).
Forgetting quotes on unit names: Use
"days"notdaysin DATEDIFF.Mixing date types: Ensure both dates in DAYS() or DATEDIFF() are the same type (both DATE or both DATETIME).