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

mysql如何查询日期与时间

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

前言:

在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询。关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法。

1.日期和时间类型概览

MySQL支持的日期和时间类型有 DATETIME、TIMESTAMP、DATE、TIME、YEAR ,几种类型比较如下:

涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可。

2.日期和时间相关函数

处理日期和时间字段的函数有很多,有的经常会在查询中使用到,下面介绍下几个相关函数的使用方法。

  • CURDATE 和 CURRENT_DATE   两个函数作用相同,返回当前系统的日期值。
  • CURTIME 和 CURRENT_TIME   两个函数作用相同,返回当前系统的时间值。
  • NOW() 和 SYSDATE()   两个函数作用相同,返回当前系统的日期和时间值。
  • UNIX_TIMESTAMP   获取UNIX时间戳函数,返回一个以 UNIX 时间戳为基础的无符号整数。
  • FROM_UNIXTIME   将 UNIX 时间戳转换为时间格式,与UNIX_TIMESTAMP互为反函数。
  • TO_DAYS()   提取日期值并返回自公元0年到现在的天数。
  • DAY()    获取指定日期或时间中的天值。
  • DATE()   获取指定日期或时间中的日期。
  • TIME()   获取指定日期或时间中的时间。
  • MONTH   获取指定日期中的月份。
  • WEEK   获取指定日期是一年中的第几周。
  • YEAR   获取年份。
  • QUARTER  获取日期所在的季度值。
  • DATE_ADD 和 ADDDATE   两个函数功能相同,都是向日期添加指定的时间间隔。
  • DATE_SUB 和 SUBDATE   两个函数功能相同,都是向日期减去指定的时间间隔。
  • ADDTIME   时间加法运算,在原始时间上添加指定的时间。
  • SUBTIME   时间减法运算,在原始时间上减去指定的时间。
  • DATEDIFF   获取两个日期之间间隔,返回参数 1 减去参数 2 的值。
  • DATE_FORMAT&nbsp本文来源gao($daima.com搞@代@#码(网;  格式化指定的日期,根据参数返回指定格式的值。

一些使用示例:

mysql> select CURRENT_DATE,CURRENT_TIME,NOW();
+--------------+--------------+---------------------+
| CURRENT_DATE | CURRENT_TIME | NOW()        |
+--------------+--------------+---------------------+
| 2020-06-03  | 15:09:37   | 2020-06-03 15:09:37 |
+--------------+--------------+---------------------+

mysql> select TO_DAYS('2020-06-03 15:09:37'),
TO_DAYS('2020-06-03')-TO_DAYS('2020-06-01');
+--------------------------------+---------------------------------------------+
| TO_DAYS('2020-06-03 15:09:37') | TO_DAYS('2020-06-03')-TO_DAYS('2020-06-01') |
+--------------------------------+---------------------------------------------+
|             737944 |                      2 |
+--------------------------------+---------------------------------------------+

mysql> select MONTH('2020-06-03'),WEEK('2020-06-03'),YEAR('2020-06-03');
+---------------------+--------------------+--------------------+
| MONTH('2020-06-03') | WEEK('2020-06-03') | YEAR('2020-06-03') |
+---------------------+--------------------+--------------------+
|          6 |         22 |        2020 |
+---------------------+--------------------+--------------------+

# DATEDIFF(date1,date2) 返回起始时间 date1 和结束时间 date2 之间的天数
mysql> SELECT DATEDIFF('2017-11-30','2017-11-29') AS COL1,
  -> DATEDIFF('2017-11-30','2017-12-15') AS col2;
+------+------+
| COL1 | col2 |
+------+------+
|  1 | -15 |
+------+------+

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

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

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

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