mysql 中的expr_mysql 中 DATE_ADD(date,INTERVAL expr type)[转载]
mysql 中 DATE_ADD(date,INTERVAL expr type) 和
DATE_SUB(date,INTERVAL expr type)
这些函数执行日期运算。 date 是一个 DATETIME 或DATE值,用来指定起始时间。 expr
是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-’开头。
type 为关键词,它指示了表达式被解释的方式。
关键词INTERVA及 type 分类符均不区分大小写。
以下表显示了type
和expr 参数的关系:
type
值 预期的
expr 格式 #
------------------------------------------------
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAY
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
YEAR YEARS
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS-MONTHS'
MySQL 允许任何expr 格式中的标点分隔符。表中所显示的是建议的 分隔符。若 date 参数是一个 DATE
值,而你的计算只会包括 YEAR、MONTH和DAY部分(即, 没有时间部分), 其结果是一个DATE 值。否则,结果将是一个
DATETIME值。
若位于另一端的表达式是一个日期或日期时间值 , 则INTERVAL expr type只允许在 + 操作符的两端。对于
–操作符, INTERVAL expr type 只允许在其右端,原因是从一个时间间隔中提取一个日期或日期时间值是毫无意义的。
(见下面的例子)。
mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1
SECOND;
-> '1998-01-01 00:00:00'
mysql> SELECT INTERVAL 1 DAY + '1997-12-31';
-> '1998-01-01'
mysql> SELECT '1998-01-01' - INTERVAL 1
SECOND;
-> '1997-12-31 23:59:59'
mysql> SELECT DATE_ADD('1997-12-31
23:59:59',INTERVAL 1 SECOND);
-> '1998-01-01 00:00:00'
mysql> SELECT DATE_ADD('1997-12-31
23:59:59',INTERVAL 1 DAY);
-> '1998-01-01 23:59:59'
mysql> SELECT DATE_ADD('1997-12-31
23:59:59',INTERVAL '1:1' MINUTE_SECOND);
-> '1998-01-01 00:01:00'
mysql> SELECT DATE_SUB('1998-01-01
00:00:00',INTERVAL '1 1:1:1' DAY_SECOND);
-> '1997-12-30 22:58:59'
mysql> SELECT DATE_ADD('1998-01-01
00:00:00',INTERVAL '-1 10' DAY_HOUR);
-> '1997-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31
DAY);
-> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31
23:59:59.000002',INTERVAL '1.999999' SECOND_MICROSECOND);
-> '1993-01-01 00:00:01.000001'
若你指定了一个过于短的时间间隔值 (不包括type 关键词所预期的所有时间间隔部分), MySQL
假定你已经省去了时间间隔值的最左部分。 例如,你指定了一种类型的DAY_SECOND, expr
的值预期应当具有天、小时、分钟和秒部分。若你指定了一个类似 '1:10'的值, MySQL
假定天和小时部分不存在,那么这个值代表分和秒。换言之, '1:10' DAY_SECOND 被解释为相当于 '1:10'
MINUTE_SECOND。这相当于 MySQL将TIME 值解释为所耗费的时间而不是日时的解释方式。
假如你对一个日期值添加或减去一些含有时间部分的内容,则结果自动转化为一个日期时间值:
mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1
DAY);
-> '1999-01-02'
mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1
HOUR);
-> '1999-01-01 01:00:00'
假如你使用了格式严重错误的日期,则结果为 NULL。假如你添加了 MONTH、YEAR_MONTH或YEAR
,而结果日期中有一天的日期大于添加的月份的日期最大限度,则这个日期自动被调整为添加月份的最大日期:
mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1
MONTH);
-> '1998-02-28'
End.
mysql 中的expr_mysql 中 DATE_ADD(date,INTERVAL expr type)[转载]相关推荐
- MySQL内置函数中的日期和时间函数详解
标题:MySQL函数大全 出处:俊的博客 时间:Sat, 14 Mar 2009 14:33:22 +0000 作者:hhj 地址:http://hhj.gx.cn/post/308/ 内容: lec ...
- mysql 日期格式化 yyyymmdd_mysql中时间日期格式化
这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAY ...
- mysql日期格式化 yyyymmdd_mysql中时间日期格式化
这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: DATE_FORMAT(FROM_UNIXTIME('1997-10-04 22:23:00'),' ...
- mysql 日期相等_mysql中时间比较的实现
MySql中时间比较的实现 unix_timestamp 函数可以接受一个参数,也可以不使用参数.它的返回值是一个无符号的整数.不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如 ...
- mysql算法函数_mysql中的函数总结
mysql中常用日期时间函数 MySQL服务器中的三种时区设置: ①系统时区---保存在系统变量system_time_zone ②服务器时区---保存在全局系统变量global.time_zone ...
- mysql 中类似dateadd_MySQL查询中的DATEADD或DATE_ADD?
您需要在MySQL中使用DATE_ADD(). 语法如下DATE_ADD(NOW(), INTERVAL yourValue MINUTE); 也可以使用算术运算符. 语法如下NOW() + INTE ...
- setTimeStamp()与setDate()区别 如何将java中Date存入mysql中的datetime中,字符串怎么转换为日期类型
数据库 1.java.sql.Date 与 java.util.Date java.sql.Date是从java.util.Date中继承而来 假设 dates1(java.sql.Date)要赋值给 ...
- oracle的date_add,SQL Server 中add函数到 oracle date add的操作
SQL Server 中add函数到 oracle date add的操作 oracle date add minutes How does one add a day/hour/minute/sec ...
- mysql存储过程中as_Mysql存储过程中的delimiter
这个命令与存储过程没什么关系吧. 其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了. 默认情况下,delimiter是分号;.在命令行客户端中,如果有一行命令以分号结束, ...
最新文章
- C语言中前面有四个空格,在C语言编程中什么叫前导空格,什么叫尾随空 – 手机爱问...
- 关于ORACLE 10g中“ORA-12541:TNS:no listener”的问题解决方案
- 孙丕恕离开浪潮 仪器厂历时60年成为服务器龙头企业
- sklearn PCA特征降维
- NOIP 2007 普及组初赛试题(C++)(无答案)
- 关于Python ord()和chr()返回ASCII码和Unicode码的看法
- SQL读写CSV文件
- 谁抢光了你的火车票?
- java web程序设计任务教程——源码(全)
- react 如何引入打印控件 CLodop
- 植被农业数据下载网站整理
- 网络安全之密码安全基础
- shell中的美元符号
- 2020,SOS,既然不能选择,那便一路向前——在20年周期的新开端,聊聊泡沫、科技和经济--童亚斋
- 2021面试题——微信小程序面试题
- racte margin 居中 失效_微信朋友圈签名 个性 居中 酷炫 设置教程,支持 安卓 / 苹果!...
- JQuery 历史学习笔记整理
- linux怎么烧写文件系统,烧写LINUX最小文件系统
- 迁移学习前沿探究探讨:低资源、领域泛化与安全迁移
- 图像分类经典卷积神经网络—ZFNet论文翻译(中英文对照版)—Visualizing and Understanding Convolutional Networks(可视化和理解卷积网络)
热门文章
- android zbar使用
- 基于ETest开发某型号北斗/GPS接收机测试系统
- 【题库】OBCA认证考试(判断题)
- Similique cum vero non harum voluptatum quasi.Voluptatum quo veniam assumenda vel quisquam fugit.
- 开发iPhone应用程序(一)
- 服装设计研发办公应用APP
- iPhone应用提交流程:如何将App程序发布到App Store?
- hive split 函数
- ubuntu linux下测试实时网络网速流量监控的几种小工具命令方法
- 隐式转换函数高级使用