Important
The SingleStore 9.1 release candidate (RC) is available now. It will be promoted to general availability (GA) soon and at that time it will be renamed to SingleStore 10.
In the interim, SingleStore 9.1 RC can be used to preview, evaluate, and provide feedback on the new and upcoming features in SingleStore 10, while SingleStore 9.0 is recommended for production workloads.
DATE_ ADD
On this page
The DATE_ function adds the given interval of time to a date or datetime object.
Syntax
DATE_ADD (dateobj, INTERVAL expr unit)
ADDDATE (dateobj, INTERVAL expr unit)
ADDDATE (dateobj, days)Arguments
-
dateobj: a valid date, datetime, or parsable date string
-
expr: the number of units to add if unit is a simple type, or a string representation of the units to add if unit is a complex type.
Can be negative. -
days: number of days to add.
Can be negative.
Simple types allowed for unit include YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MICROSECOND.unit include YEAR_, DAY_, DAY_, DAY_, DAY_, HOUR_, HOUR_, HOUR_, MINUTE_, MINUTE_, SECOND_.expr for complex unit types is an arbitrarily delimited string of integers.
Return Type
Date or datetime object.
Remarks
-
In
DATE_andADD() ADDDATE()functions,MOD(.and. . ) a MOD bexpressions inINTERVALexpr unitsyntax are not supported without parentheses due to parser limitations.Use the modulo operator ( %), or wrap theMODexpression in parentheses.-- SupportedSELECT DATE_ADD('2020-01-01', INTERVAL 100 % 3 DAY);SELECT DATE_ADD('2020-01-01', INTERVAL (MOD(100, 3)) DAY);SELECT DATE_ADD('2020-01-01', INTERVAL (100 MOD 3) DAY);-- Not supportedDATE_ADD('2020-01-01', INTERVAL MOD(100, 3) DAY);DATE_ADD('2020-01-01', INTERVAL 100 MOD 3 DAY);
Examples
SELECT ADDDATE("2010-04-02 01:23:54", INTERVAL 1 YEAR);
+-------------------------------------------------+
| ADDDATE("2010-04-02 01:23:54", INTERVAL 1 YEAR) |
+-------------------------------------------------+
| 2011-04-02 01:23:54 |
+-------------------------------------------------+SELECT ADDDATE("2010-04-02", INTERVAL "1 02:03:04.567" DAY_MICROSECOND);
+------------------------------------------------------------------+
| ADDDATE("2010-04-02", INTERVAL "1 02:03:04.567" DAY_MICROSECOND) |
+------------------------------------------------------------------+
| 2010-04-03 02:03:04.567000 |
+------------------------------------------------------------------+SELECT Emp_No, Hire_Date, DATE_ADD(Hire_Date, INTERVAL 3 MONTH) Contract_End_Date FROM Employees WHERE Emp_No = 12345;
+--------+------------+-------------------+
| Emp_No | Hire_Date | Contract_End_Date |
+--------+------------+-------------------+
| 12345 | 2014-10-28 | 2015-01-28 |
+--------+------------+-------------------+Last modified: