MariaDB 函数

MariaDB DATE_ADD() 函数将指定的时间/日期间隔添加到日期/日期时间值,然后返回修改后的日期/日期时间值。

使用此函数并以负值作为参数相当于使用 DATE_SUB() 函数。

语法

DATE_ADD(datetime, INTERVAL value unit) 

    参数

    datetime必需。 指定要修改的日期或日期时间值。
    value必填。 指定要添加的时间/日期间隔的值。允许正值和负值。
    unit必填。 指定要添加的间隔的单位类型。它可以是以下值之一:
    • MICROSECOND
    • SECOND
    • MINUTE
    • HOUR
    • DAY
    • WEEK
    • MONTH
    • QUARTER
    • YEAR
    • SECOND_MICROSECOND
    • MINUTE_MICROSECOND
    • MINUTE_SECOND
    • HOUR_MICROSECOND
    • HOUR_SECOND
    • HOUR_MINUTE
    • DAY_MICROSECOND
    • DAY_SECOND
    • DAY_MINUTE
    • DAY_HOUR
    • YEAR_MONTH

    返回值

    返回修改后的日期/日期时间值。

    示例 1:

    下面的示例显示了DATE_ADD()函数的用法。

    SELECT DATE_ADD('2019-10-25', INTERVAL 10 DAY);
    Result: '2019-11-04'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL 2 HOUR);
    Result: '2019-10-25 10:10:25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL -2 HOUR);
    Result: '2019-10-25 06:10:25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL 30 MINUTE);
    Result: '2019-10-25 08:40:25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL -10 SECOND);
    Result: '2019-10-25 08:10:15'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL 1 WEEK);
    Result: '2019-11-01 08:10:25'
    
    SELECT DATE_ADD('2019-10-25', INTERVAL -2 MONTH);
    Result: '2019-08-25'
    
    SELECT DATE_ADD('2019-10-25', INTERVAL 2 QUARTER);
    Result: '2020-04-25'
    
    SELECT DATE_ADD('2019-10-25', INTERVAL 2 YEAR);
    Result: '2021-10-25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL 10 MICROSECOND);
    Result: '2019-10-25 08:10:25.000010'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '5.0000010' SECOND_MICROSECOND);
    Result: '2019-10-25 08:10:30.000010'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '10:5.0000010' MINUTE_MICROSECOND);
    Result: '2019-10-25 08:20:30.000010'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '10:5' MINUTE_SECOND);
    Result: '2019-10-25 08:20:30'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '2:10:5.0000010' HOUR_MICROSECOND);
    Result: '2019-10-25 10:20:30.000010'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '2:10:5' HOUR_SECOND);
    Result: '2019-10-25 10:20:30'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '2:10' HOUR_MINUTE);
    Result: '2019-10-25 10:20:25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '3 2:10:5.0000010' DAY_MICROSECOND);
    Result: '2019-10-28 10:20:30.000010'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '3 2:10:5' DAY_SECOND);
    Result: '2019-10-28 10:20:30'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '3 2:10' DAY_MINUTE);
    Result: '2019-10-28 10:20:25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '3 2' DAY_HOUR);
    Result: '2019-10-28 10:10:25'
    
    SELECT DATE_ADD('2019-10-25 08:10:25', INTERVAL '2 5' YEAR_MONTH);
    Result: '2022-03-25 08:10:25' 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    示例 2:

    考虑一个名为 EmployeeLogin 的数据库表,其中包含以下记录:

    EmpIDNameLogin StampExpected Logout Stamp
    1John2019-10-25 09:20:382019-10-25 17:50:38
    2Marry2019-10-25 09:21:052019-10-25 17:51:05
    3Jo2019-10-25 09:24:352019-10-25 17:54:35
    4Kim2019-10-25 09:25:242019-10-25 17:55:24
    5Ramesh2019-10-25 09:27:162019-10-25 17:57:16

    插入新记录在此表中记录,可以使用以下语句。

    INSERT INTO EmployeeLogin 
    VALUES (6, 'Suresh', NOW(), DATE_ADD(NOW(), INTERVAL '8:30' HOUR_MINUTE));
    
    -- 查看结果
    SELECT * FROM EmployeeLogin; 
    • 1
    • 2
    • 3
    • 4

    这将产生类似于以下内容的结果:

    EmpIDNameLogin StampExpected Logout Stamp
    1John2019-10-25 09:20:382019-10-25 17:50:38
    2Marry2019-10-25 09:21:052019-10-25 17:51:05
    3Jo2019-10-25 09:24:352019-10-25 17:54:35
    4Kim2019-10-25 09:25:242019-10-25 17:55:24
    5Ramesh2019-10-25 09:27:162019-10-25 17:57:16
    6Suresh2019-10-25 09:28:192019-10-25 17:58:19