• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL时间日期相关函数使用

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

数据库应用中对日期和时间的操作是非常常用的,MySQL自带了许多很有用的函数,可以帮助我们便捷地实现某些需求。下面我们来介绍一下相关的MySQL日期与实践函数。 获取当前日期: mysql> SELECT curdate();+————+| curdate() |+————+| 2010-1

数据库应用中对日期和时间的操作是非常常用的,MySQL自带了许多很有用的函数,可以帮助我们便捷地实现某些需求。下面我们来介绍一下相关的MySQL日期与实践函数。

获取当前日期:

mysql> SELECT curdate();+------------+| curdate()  |+------------+| 2010-11-16 |+------------+1 row in set
mysql> SELECT CURRENT_DATE();+----------------+| CURRENT_DATE() |+----------------+| 2010-11-16     |+----------------+1 row in set

获取当前时间:

mysql> SELECT curtime();+-----------+| curtime() |+-----------+| 12:48:40  |+-----------+1 row in set
mysql> SELECT CURRENT_TIME();+----------------+| CURRENT_TIME() |+----------------+| 12:49:00       |+----------------+1 row in set

获取当前时间日期:

mysql> SELECT now();+---------------------+| now()               |+---------------------+| 2010-11-16 12:50:39 |+---------------------+1 row in set
mysql> SELECT CURRENT_TIMESTAMP();+---------------------+| CURRENT_TIMESTAMP() |+---------------------+| 2010-11-16 12:51:01 |+---------------------+1 row in set

注意:在一个单一询问中,对诸如NOW() 的函数多次访问总是会得到同样的结果。

日期增减:

DATE_ADD(date,INTERVAL expr type)DATE_SUB(date,INTERVAL expr type)

这些函数执行日期运算。

  • date 是一个 DATETIME 或DATE值,用来指定起始时间。
  • expr 是一个表达式,用来指定从起始日期添加或减去的时间间隔值。 Expr是一个字符串;对于负值的时间间隔,它可以以一个 ‘-‘开头。
  • type 为关键词,它指示了表达式被解释的方式。
  • 关键词INTERVA及 type 分类符均不区分大小写。

MySQL 允许任何expr 格式中的标点分隔符。表中所显示的是建议的 分隔符。若 date 参数是一个 DATE 值,而你的计算只会包括 YEAR、MONTH和DAY部分(即, 没有时间部分), 其结果是一个DATE 值。否则,结果将是一个 DATETIME值。

指定日期1秒后:

mysql> SELECT DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND);+----------------------------------------------------+| DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND) |+----------------------------------------------------+| 2011-01-01 00:00:00                                |+----------------------------------------------------+1 row in set

指定日期1天后:

mysql> SELECT DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 DAY);+-------------------------------------------------+| DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 DAY) |+-------------------------------------------------+| 2011-01-01 23:59:59                             |+-------------------------------------------------+1 row in set

指定日期减去10小时:

mysql> SELECT DATE_ADD('2011-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR);+------------------------------------------------------------+| DATE_ADD('2011-01-01 00:00:00', INTERVAL '-1 10' DAY_HOUR) |+------------------------------------------------------------+| 2010-12-30 14:00:00                                        |+------------------------------------------------------------+1 row in set

指定日期的一个月前:

mysql> SELECT DATE_SUB('2011-01-02', INTERVAL 31 DAY);+-----------------------------------------+| DATE_SUB('2011-01-02', INTERVAL 31 DAY) |+-----------------------------------------+| 2010-12-02                              |+-----------------------------------------+1 row in set

指定日期的前一天:

mysql> SELECT date_add('2011-01-01', INTERVAL -1 DAY);+-----------------------------------------+| date_add('2011-01-01', INTERVAL -1 DAY) |+-----------------------------------------+| 2010-12-31                              |+-----------------------------------------+1 row in set

将日期时间转换成指定格式:

DATE_FORMAT(date,format)

根据format 字符串安排date 值的格式。所有其它字符都被复制到结果中,无需作出解释。注意,’%’字符要求在格式指定符之前。月份和日期说明符的范围从零开始,原因是 MySQL允许存储诸如 ‘2004-00-00’的不完全日期。

mysql> SELECT DATE_FORMAT( FROM_UNIXTIME( 1290996580 ), '%Y-%m-%d %H:%i:%s' );+-----------------------------------------------------------------+| DATE_FORMAT( FROM_UNIXTIME( 1290996580 ), '%Y-%m-%d %H:%i:%s' ) |+-----------------------------------------------------------------+| 2010-11-29 10:09:40                                             |+-----------------------------------------------------------------+1 row in set
mysql> SELECT DATE_FORMAT( FROM_UNIXTIME( 1290996580 ) , '%Y-%m-%d' );+---------------------------------------------------------+| DATE_FORMAT( FROM_UNIXTIME( 1290996580 ) , '%Y-%m-%d' ) |+---------------------------------------------------------+| 2010-11-29                                              |+---------------------------------------------------------+1 row in set

下面两个函数

FROM_UNIXTIME(unix_timestamp) ,FROM_UNIXTIME(unix_timestamp,format)

返回’YYYY-MM

本文来源gaodai.ma#com搞##代!^码@网*

-DD HH:MM:SS’或YYYYMMDDHHMMSS 格式值的unix_timestamp参数表示,具体格式取决于该函数是否用在字符串中或是数字语境中。

若format 已经给出,则结果的格式是根据format 字符串而定。 format 可以包含同DATE_FORMAT() 函数输入项列表中相同的说明符。

mysql> SELECT FROM_UNIXTIME(875996580);+--------------------------+| FROM_UNIXTIME(875996580) |+--------------------------+| 1997-10-05 04:23:00      |+--------------------------+1 row in set
mysql> SELECT FROM_UNIXTIME(875996580) + 0;+------------------------------+| FROM_UNIXTIME(875996580) + 0 |+------------------------------+|        19971005042300.000000 |+------------------------------+1 row in set

MySql unix时间转换成SQLServer适用的时间格式:

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i:%s');+------------------------------------------------------+| FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i:%s') |+------------------------------------------------------+| 2010-11-16 19:12:11                                  |+------------------------------------------------------+1 row in set

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL时间日期相关函数使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址