MySQL date_add()函数
转载自 MySQL date_add()函数
MySQL DATE_ADD函数简介
DATE_ADD
函数将间隔时间添加到DATE或DATETIME值。 下面说明了DATE_ADD
函数的语法:
DATE_ADD(start_date, INTERVAL expr unit);
DATE_ADD
函数有两个参数:
start_date
是DATE
或DATETIME
的起始值。INTERVAL expr unit
是要添加到起始日期值的间隔值。
根据参数,DATE_ADD
函数可能会返回一个DATETIME
值或一个字符串:
DATETIME
- 如果第一个参数是DATETIME
值,或者如果间隔值具有时间元素,如小时,分钟或秒等。- 否则返回字符串。
MySQL DATE_ADD函数示例
我们来看几个例子来了解DATE_ADD
函数的工作原理。
示例-1 加1
秒到时间:2017-12-31 23:59:59
:
mysql> SELECT DATE_ADD('2017-12-31 23:59:59', INTERVAL 1 SECOND) result;
+---------------------+
| result |
+---------------------+
| 2018-01-01 00:00:00 |
+---------------------+
1 row in set
示例-2 - 添加1
天到时间:2017-12-31 00:00:01
:
mysql> SELECT DATE_ADD('2017-12-31 00:00:01',INTERVAL 1 DAY) result;
+---------------------+
| result |
+---------------------+
| 2018-01-01 00:00:01 |
+---------------------+
1 row in set
示例-3 - 在时间2017-12-31 23:59:59
上加1
分1
秒。
mysql> SELECT DATE_ADD('2017-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) result;
+---------------------+
| result |
+---------------------+
| 2018-01-01 00:01:00 |
+---------------------+
1 row in set
示例-4 - 在时间2000-01-01 00:00:00
上加-1
天5
小时。
mysql> SELECT DATE_ADD('2000-01-01 00:00:00', INTERVAL '-1 5' DAY_HOUR) result;
+---------------------+
| result |
+---------------------+
| 1999-12-30 19:00:00 |
+---------------------+
1 row in set
示例-5 - 添加1
秒和999999
微秒到时间:2017-12-31 23:59:59.000002
:
mysql> SELECT DATE_ADD('2017-12-31 23:59:59.000002',INTERVAL '1.999999' SECOND_MICROSECOND) result;
+----------------------------+
| result |
+----------------------------+
| 2018-01-01 00:00:01.000001 |
+----------------------------+
1 row in set
MySQL DATE_ADD函数使用说明
间隔处理
在间隔期间 -
INTERVAL expr unit
expr
被视为一个字符串,因此,当为expr
使用非字符串值时,您应该小心。 例如,间隔为HOUR_MINUTE
,5/2
求值结果为2.5000
(不是2.5
),并被视为2
小时5000
分钟,如下面的语句所示:
mysql> SELECT DATE_ADD('2017-01-01', INTERVAL 5 / 2 HOUR_MINUTE) result;
+---------------------+
| result |
+---------------------+
| 2017-01-04 13:20:00 |
+---------------------+
1 row in set
为了确保非串间隔值的正确解释,您应该使用CAST
函数,如下所示:
mysql> SELECT DATE_ADD('2017-01-01', INTERVAL CAST(6/4 AS DECIMAL(3,1)) HOUR_MINUTE) result;
+---------------------+
| result |
+---------------------+
| 2017-01-01 01:05:00 |
+---------------------+
1 row in set
自动DATETIME转换
如果您将时间值添加到日期值,则结果为DATETIME值,如以下示例所示:
mysql> SELECT DATE_ADD('2017-01-01', INTERVAL 12 HOUR) result;
+---------------------+
| result |
+---------------------+
| 2017-01-01 12:00:00 |
+---------------------+
1 row in set
起始日期无效
如果对第一个参数使用无效的日期,DATE_ADD
函数将返回NULL
,例如:
mysql> SELECT DATE_ADD('2017-02-30', INTERVAL 1 DAY) result;
+--------+
| result |
+--------+
| NULL |
+--------+
1 row in set
如果要详细看到警告,请使用SHOW WARNINGS
语句:
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: '2017-02-30' |
+---------+------+----------------------------------------+
1 row in set
调整日,月或年
如果您将MONTH
,YEAR
或YEAR_MONTH
的间隔添加到导致日期大于新月份的最大日期的日期,则该日期将被调整为新月份的最大日期。
请看看以下示例:
mysql> SELECT DATE_ADD('2017-01-30', INTERVAL 1 MONTH) result;
+------------+
| result |
+------------+
| 2017-02-28 |
+------------+
1 row in set
在这个例子中,我们在2017年1月30日相加上了1个月,结果是2017年2月28日。这一天被调整到2017年2月的最大天数。
如果是2
月份有29
天,日期也将调整为第29
天,如下所示:
mysql> SELECT DATE_ADD('2012-01-30', INTERVAL 1 MONTH) result;
+------------+
| result |
+------------+
| 2012-02-29 |
+------------+
1 row in set
在本教程中,您已经学习了如何使用MySQL DATE_ADD
函数将间隔添加到DATE
或DATETIME
值。
MySQL date_add()函数相关推荐
- MySQL DATE_ADD() 函数
用途: 在MySql语句执行日期的加减 实际情况: 常用于加减一段时间和当前时间比较的情况 函数如下: #date 指定的时间值 #INTERVAL #expr 添加的时间间隔 # 时间间隔单位 DA ...
- mysql的如何输入dateadd_mysql中date_add()函数的使用?
需求描述: 在使用mysql的过程中,需要对日期进行计算,比如对某个日期加上几天,几个小时等操作, 在此记录下,date_add()函数的使用. 操作过程: date_add()函数语法: 备注:da ...
- MySql函数 - DATE_ADD()函数
MySql函数 - DATE_ADD()函数 1.函数用途 date_add() 函数用来对日期进行加减 2.函数调用形式 // @date 欲操作的日期 // INTERVAL 关键字 // exp ...
- [Mysql] LAST_DAY函数 | DATE_ADD函数 | DATE_SUB函数
1.LAST_DAY函数 LAST_DAY函数用于返回给定日期的那一月份的最后一天 语法格式 LAST_DAY(date) -- 2022-05-31 SELECT LAST_DAY('2022-05 ...
- Mysql日期函数使用大全
为什么80%的码农都做不了架构师?>>> 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还有 ...
- MySQL date_sub()函数
转载自 MySQL date_sub()函数 MySQL DATE_SUB函数简介 DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔). 下面说明了DATE_SUB()函数 ...
- mysql常用函数参考
mysql常用函数参考 对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回 ...
- MySQL常用函数 二
结合MySQL自带的帮助文档列一下MySQL数据库中常用的一些函数. 事实证明:MySQL的联机帮助资料非常实用,希望哪一天可爱的Oracle可以像MySQL学习一下,她可以让您基本不用查看其他的资料 ...
- MySQL常用函数系列之九:日期和时间函数 函数(4)
2019独角兽企业重金招聘Python工程师标准>>> 本文将实例演示DATE_ADD函数用法. DATE_ADD(date,INTERVAL exprtype)函数:返回与所给日期 ...
最新文章
- Winform开发框架之系统重新登录、自动登录实现
- 复杂的结构化存取(一)
- 22种代码味道(Martin Fowler与Kent Beck)
- Python -- 循环技巧(Looping Techniques)
- 简单使用TFS管理源代码
- 以色列:新发明大幅提高太阳能发电效率
- 谷歌更新TensorFlow目标检测API
- 问题-提示“请确定磁盘未满或未被写保护而且文件未被使用”
- 如何:在 Windows 窗体 ListView 控件中启用平铺视图 【转载】
- (转)策略回测的框架、实现、测试
- 数模更新篇-3-因子分析模型
- 鲲鹏920的服务器芯片,鲲鹏920芯片是什么芯片
- 科技软文营销标题写作的5个常用技巧
- 关于Chrome沙箱技术(沙盒技术)
- 电脑Java安装 报错_Windows10系统电脑安装Java开发环境的方法
- BCH5月硬分叉,如果做成了支付,会超越BTC吗?
- Android教程 -05 Android6.0权限的管理
- android 微信签名,Android微信签名知识的总结
- 什么是IoT、IT、OT、CT
- 【C语言】#和##的作用