mysql, mysql中的date_sub是什么?不知道小伙伴们今天来看看边肖的分享吧!
1.ate_sub功能介绍:
DATE_SUB()函数从日期或日期时间值中减去时间值(或时间间隔)。下面解释了DATE_SUB()函数的语法:
DATE_SUB(start_date,INTERVAL expr unit);SQL
2.DATE_SUB()函数接受两个参数:
The start date is the starting value of a date or date time.
Expr是一个字符串,用于确定从开始日期减去的间隔值。单位是expr可以解析的区间单位,如日、小时等。
以下语句使用DATE_SUB()函数从2017年7月4日减去一天:
mysql SELECT DATE_SUB(2017-09-04,INTERVAL 1 DAY) result;
+------------+
| result |
+------------+
| 2017-09-03 |
+------------+
1 row in set
-查找昨天的日期值:从今天的日期值中减去1天。
mysql SELECT DATE_SUB(curdate(),INTERVAL 1 DAY) result;
+------------+
| result |
+------------+
| 2017-08-09 |
+------------+
1 row in set//
在本例中,开始日期是2017-09-04,格式为YY-年月-日。间隔1天被分解为1天的间隔。DATE_SUB()函数的结果是2017-09-03的字符串值。
与DATE_ADD()函数类似,DATE_SUB()函数返回值的数据类型可以是:
如果第一个参数是DATETIME,返回值应该是DATETIME,或者interval有时间元素,比如小时、分钟、秒等。
否则,返回一个字符串。
示例:
示例1
mysql SELECT DATE_SUB(2017-09-04,INTERVAL 3 HOUR) result;
+---------------------+
| result |
+---------------------+
| 2017-09-03 21:00:00 |
+---------------------+
1 row in set//
因为时间间隔是3小时,所以DATE_SUB函数的结果是DATETIME值。
示例2
MySQL Date _ Subscription: Negative Interval Value
Expr可以是正值,也可以是负值。如果expr为负,则DATE_SUB()函数的行为类似于DATE_ADD()函数,如下例所示:
mysql SELECT DATE_SUB(2017-07-03,INTERVAL -1 DAY) result;
+------------+
| result |
+------------+
| 2017-07-04 |
+------------+
1 row in set//
示例3
MySQL DATE_SUB:DATE无效或格式不正确如果DATE_SUB()函数的第一个参数格式不正确,则DATE无效或为NULL,DATE _ SUB()函数返回NULL。
mysql SELECT DATE_SUB(2017-02-29, INTERVAL - 1 DAY) result;
+--------+
| result |
+--------+
| NULL |
+--------+
1 row in set//
在此示例中,2017-02-29是无效日期,因此结果为NULL。另外,MySQL发出了警告,可以通过下面的查询查看语句。
mysql SHOW WARNINGS;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1292 | Incorrect datetime value: 2017-02-29 |
+---------+------+----------------------------------------+
1 row in set//
以下示例说明了向DATE_SUB函数传递异常日期或NULL会产生以下影响:
mysql SELECT DATE_SUB(03/07/2017, INTERVAL 1 DAY) result;
+--------+
| result |
+--------+
| NULL |
+--------+
1 row in setmysql SELECT DATE_SUB(NULL, INTERVAL 1 DAY) result;
+--------+
| result |
+--------+
| NULL |
+--------+
1 row in set//
mysql,以上就是本文为您收集整理的mysql最新内容,希望能帮到您!更多相关内容欢迎关注。