0

0

MySQL介绍日期函数

coldplay.xixi

coldplay.xixi

发布时间:2021-03-02 09:11:29

|

2715人浏览过

|

来源于CSDN

转载

MySQL介绍日期函数

日期函数类型:

(1)获取当前日期的函数和获取当前时间的函数
(2)获取当前日期和时间的函数
(3)UNIX时间戳函数
(4)返回UTC日期的函数和返回UTC时间的函数
(5)获取月份的函数month(date)和monthname(date)
(6)获取星期的函数dayname(d)、dayofweek(d)和weekday(d)
(7)获取星期数的函数week(d)和dayofyear(d)
(8)获取天数的函数dayofyear(d)和dayofmonth(d)
(9)获取年份、季度、小时、分钟和秒钟的函数。
(10)获取日期的指定值的函数extract(type from date)
(11)时间和秒钟转换的函数
(12)计算日期和时间的函数
(13)将日期和时间格式化的函数

(相关免费学习推荐:mysql视频教程

(1)获取当前日期的函数和获取当前时间的函数

1.curdate()和current_date()
【例】使用日期函数获取系统当前日期,SQL语句如下:

mysql> select curdate(),current_date(),curdate()+0;+------------+----------------+-------------+| curdate()  | current_date() | curdate()+0 |+------------+----------------+-------------+| 2019-08-18 | 2019-08-18     |    20190818 |+------------+----------------+-------------+1 row in set (0.00 sec)
  • curdate()+0表示将当前日期值转换为数值型。

2.curtime()和current_time()
【例】使用时间函数获取系统当前时间,SQL语句如下:

mysql> select curtime(),current_time(),curtime()+0;+-----------+----------------+-------------+| curtime() | current_time() | curtime()+0 |+-----------+----------------+-------------+| 17:08:07  | 17:08:07       |      170807 |+-----------+----------------+-------------+1 row in set (0.00 sec)
  • curtime()+0表示将当前时间值转换为数值型。

(2)获取当前日期和时间的函数
  • current_timestamp()、localtime()、now()和sysdate()四个函数作用相同,都是返回当前日期和时间值。

【例】使用日期时间函数获取当前系统时间和日期,SQL语句如下:

mysql> select current_timestamp(),
    -> localtime(),
    -> now(),
    -> sysdate();+---------------------+---------------------+---------------------+---------------------+| current_timestamp() | localtime()         | now()               | sysdate()           |+---------------------+---------------------+---------------------+---------------------+| 2019-08-18 19:10:05 | 2019-08-18 19:10:05 | 2019-08-18 19:10:05 | 2019-08-18 19:10:05 |+---------------------+---------------------+---------------------+---------------------+1 row in set (0.05 sec)

(3)UNIX时间戳函数
  • unix_timestamp(date)若为无参数调用,则返回一个unix时间戳(GMT之后的秒数,GMT为格林尼治标准时间1970.1.1)作为无符号整数。
  • date可以是一个date字符串,datetime字符串、timestamp或一个当地时间的YY[YY]MMDD格式的数字。

1.unix_timestamp(date)
【例】使用unix_timestamp函数返回unix格式的时间戳,SQL语句如下:

mysql> select unix_timestamp(),unix_timestamp(now()),now();+------------------+-----------------------+---------------------+| unix_timestamp() | unix_timestamp(now()) | now()               |+------------------+-----------------------+---------------------+|       1566127316 |            1566127316 | 2019-08-18 19:21:56 |+------------------+-----------------------+---------------------+1 row in set (0.05 sec)
  • from_unixtime()函数吧unix时间戳转换为普通格式的时间,与unix_timestamp(date)函数互为反函数。

2.from_unixtime(date)
【例】使用from_unixtime函数将unix时间戳转换为普通格式时间,SQL语句如下:

mysql> select from_unixtime('1566127316');+-----------------------------+| from_unixtime('1566127316') |+-----------------------------+| 2019-08-18 19:21:56.000000  |+-----------------------------+1 row in set (0.00 sec)

(4)返回UTC日期的函数和返回UTC时间的函数。

1.UTC_DATE()
【例】使用utc_date()函数返回当前UTC日期值,SQL语句如下:

mysql> select utc_date(),utc_date()+0;+------------+--------------+| utc_date() | utc_date()+0 |+------------+--------------+| 2019-08-18 |     20190818 |+------------+--------------+1 row in set (0.05 sec)

2.UTC_TIME()
【例】使用UTC_TIME()函数返回当前UTC时间值,SQL语句如下:

mysql> select utc_time(),utc_time()+0;+------------+--------------+| utc_time() | utc_time()+0 |+------------+--------------+| 11:32:27   |       113227 |+------------+--------------+1 row in set (0.00 sec)

(5)获取月份的函数month(date)和monthname(date)

1.month(date)
【例】使用month()函数返回指定日期中的月份,SQL语句如下:

mysql> select month('2019-08-18');+---------------------+| month('2019-08-18') |+---------------------+|                   8 |+---------------------+1 row in set (0.00 sec)

2.monthname(date)
【例】使用monthname()函数返回指定日期中的月份名称,SQL语句如下:

mysql> select monthname('2019-08-18');+-------------------------+| monthname('2019-08-18') |+-------------------------+| August                  |+-------------------------+1 row in set (0.00 sec)

(6)获取星期的函数dayname(d)、dayofweek(d)和weekday(d)

1.dayname(d)
【例】使用dayname()函数返回指定日期的工作日名称,SQL语句如下:

mysql> select dayname('2019-08-18');+-----------------------+| dayname('2019-08-18') |+-----------------------+| Sunday                |+-----------------------+1 row in set (0.00 sec)

2.dayofweek(d)
【例】使用dayofweek()函数返回日期对应的周索引,SQL语句如下:

mysql> select dayofweek('2019-08-18');+-------------------------+| dayofweek('2019-08-18') |+-------------------------+|                       1 |+-------------------------+1 row in set (0.00 sec)

3.weekday(d)

  • weekday(d)返回d对应的工作日索引:0代表周一,1代代表周二,…6代表周日。

【例】使用weekday()函数返回日期对应的工作日索引,SQL语句如下:

mysql> select weekday('2019-08-18 19:40:00'),
    -> weekday('2019-08-18');+--------------------------------+-----------------------+| weekday('2019-08-18 19:40:00') | weekday('2019-08-18') |+--------------------------------+-----------------------+|                              6 |                     6 |+--------------------------------+-----------------------+1 row in set (0.00 sec)

(7)获取星期数的函数week(d)和dayofyear(d)
  • week(d)计算日期d是一年中第几周,双参形式允许指定该星期是否起始于周日或周一,若Mode参数被忽略,使用default_week_format系统自变量的值。

1.week(d)
【例】使用week()函数查询指定日期是一年中的第几周,SQL语句如下:

mysql> select week('2019-08-18'),week('2019-08-18',0),week('2019-08-18',1);+--------------------+----------------------+----------------------+| week('2019-08-18') | week('2019-08-18',0) | week('2019-08-18',1) |+--------------------+----------------------+----------------------+|                 33 |                   33 |                   33 |+--------------------+----------------------+----------------------+1 row in set (0.05 sec

2.weekofyear(d)
【例】使用weekofyear()查询指定日期是一年中的第几周,SQL语句如下:

mysql> select week('2019-08-18',3),weekofyear('2019-08-18');+----------------------+--------------------------+| week('2019-08-18',3) | weekofyear('2019-08-18') |+----------------------+--------------------------+|                   33 |                       33 |+----------------------+--------------------------+1 row in set (0.05 sec)

(8)获取天数的函数dayofyear(d)和dayofmonth(d)

1.dayofyear()
【例】使用dayofyear()函数返回指定日期在一年中的位置,SQL语句如下:

mysql> select dayofyear('2019-08-18');+-------------------------+| dayofyear('2019-08-18') |+-------------------------+|                     230 |+-------------------------+1 row in set (0.00 sec)

2.dayofmonth()
【例】使用dayofmonth()函数返回指定日期在一个月中的位置,SQL语句如下;

mysql> select dayofmonth('2019-08-18');+--------------------------+| dayofmonth('2019-08-18') |+--------------------------+|                       18 |+--------------------------+1 row in set (0.00 sec)

(9)获取年份、季度、小时、分钟和秒钟的函数。

1.YEAR(date)
【例】使用year()函数返回指定日期对应的年份,SQL语句如下:

PHP房产程序[BBWPS]
PHP房产程序[BBWPS]

[PHP房产程序|BBWPS]功能介绍 1、5种信息类别发布:出租、求租、出售、求购、楼盘信息,支持会员发布信息审核; 2、灵活的信息参数设置; 3、充足的信息字段; 4、简单易用的发布/编辑功能,支持配图上传; 5、灵活的信息管理功能; 6、信息输出伪静态,方便搜索引擎抓取数据; 7、支持RSS输出; 8、内置数据高速缓冲技术,可灵活设置缓冲功能是否启动及过期时间; 9、支持 Google 地图

下载
mysql> select year('19-08-18'),year('98-02-19');+------------------+------------------+| year('19-08-18') | year('98-02-19') |+------------------+------------------+|             2019 |             1998 |+------------------+------------------+1 row in set (0.05 sec)

2.QUARTER(date)
【例】使用quarter()函数返回指定日期对应的季度,SQL语句如下:

mysql> select quarter('19-08-18');+---------------------+| quarter('19-08-18') |+---------------------+|                   3 |+---------------------+1 row in set (0.00 sec)

3.MINUTE(time)
【例】使用minute()函数返回指定时间的分钟值,SQL语句如下:

mysql> select minute('19-08-18 20:07:00');+-----------------------------+| minute('19-08-18 20:07:00') |+-----------------------------+|                           7 |+-----------------------------+1 row in set (0.00 sec)

4.SECOND(time)
【例】使用second()函数返回指定时间的秒值,SQL语句如下:

mysql> select second('20:07:00');+--------------------+| second('20:07:00') |+--------------------+|                  0 |+--------------------+1 row in set (0.00 sec)

(10)获取日期的指定值的函数extract(type from date)

【例】使用extract(type from date)函数提取日期或时间值。

mysql> select extract(year from '2019-08-18') as col1,
    -> extract(year_month from '2019-08-18 20:46:01') as col2,
    -> extract(day_minute from '2019-08-18 20:46:01') as col3;+------+--------+--------+| col1 | col2   | col3   |+------+--------+--------+| 2019 | 201908 | 182046 |+------+--------+--------+1 row in set (0.00 sec)

(11)时间和秒钟转换的函数

1.time_to_sec(time)

  • time_to_sec(time)返回已经转化为秒的time参数。转换公式为:小时x3600+分钟*60+秒。

【例】使用time_to_sec函数将时间值转换为秒值。

mysql> select time_to_sec('20:34:00');+-------------------------+| time_to_sec('20:34:00') |+-------------------------+|                   74040 |+-------------------------+1 row in set (0.00 sec)

2.sec_to_time(seconds)

  • sec_to_time函数返回值加上0值之后变成了小数值。
  • time_to_sec正好和sec_to_time互为反函数。

【例】使用sec_to_time()函数将秒值转换为时间格式,SQL语句如下;

mysql> select sec_to_time(2345),sec_to_time(2345)+0,
    -> time_to_sec('20:36:00'),sec_to_time('74040');+-------------------+---------------------+-------------------------+----------------------+| sec_to_time(2345) | sec_to_time(2345)+0 | time_to_sec('20:36:00') | sec_to_time('74040') |+-------------------+---------------------+-------------------------+----------------------+| 00:39:05          |                3905 |                   74160 | 20:34:00.000000      |+-------------------+---------------------+-------------------------+----------------------+1 row in set (0.05 sec)

(12)计算日期和时间的函数。

MySQL中计算日期和时间的格式:
在这里插入图片描述
1.date_add(date,interval expr type)adddate(date,interval expr type)两个函数的作用相同,执行日期的加运算:

【例】使用date_add()和adddate()函数执行日期加操作,SQL语句如下:

mysql> select date_add('2019-08-18 23:59:59',interval 1 second) as col1,
    -> adddate('2019-08-18 23:59:59',interval 1 second) as col2,
    -> date_add('2019-08-18 23:59:59',interval '1:1' minute_second) as col3;+---------------------+---------------------+---------------------+| col1                | col2                | col3                |+---------------------+---------------------+---------------------+| 2019-08-19 00:00:00 | 2019-08-19 00:00:00 | 2019-08-19 00:01:00 |+---------------------+---------------------+---------------------+1 row in set (0.05 sec)

2.date_sub(date,interval expr type)subdate(date,interval expr type)两个函数作用相同,执行日期的减运算:

【例】使用date_sub和subdate函数执行日期减操作,SQL语句如下:

mysql> select date_sub('2019-08-18',interval 31 day) as col1,
    -> subdate('2019-08-18',interval 31 day) as col2,
    -> date_sub('2019-08-18 21:15:10',interval '0 0:1:1' day_second) as col3;+------------+------------+---------------------+| col1       | col2       | col3                |+------------+------------+---------------------+| 2019-07-18 | 2019-07-18 | 2019-08-18 21:14:09 |+------------+------------+---------------------+1 row in set (0.00 sec)

3.addtime(date,expr)函数将expr值添加到date,并返回修改后的值,date是一个日期或者日期时间表达式,而expr是一个时间表达式。
【例】使用addtime进行时间加操作,SQL语句如下;

mysql> select addtime('2019-08-18 21:59:59','1:1:1'),addtime('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| addtime('2019-08-18 21:59:59','1:1:1') | addtime('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2019-08-18 23:01:00                    | 04:02:02                       |+----------------------------------------+--------------------------------+1 row in set (0.05 sec)

4.subtime(date,expr)函数将date减去expr值,并返回修改后的值,date是一个日期或者日期时间表达式,expr是一个时间表达式。
【例】使用subtime()函数执行减操作,SQL语句如下:

mysql> select subtime('2019-08-18 21:59:59','1:1:1'),subtime('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| subtime('2019-08-18 21:59:59','1:1:1') | subtime('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2019-08-18 20:58:58                    | 00:02:02                       |+----------------------------------------+--------------------------------+1 row in set (0.00 sec)

5.datediff(date1,date2)返回起始时间date1和结束时间date2之间的天数,date1和date2为日期或date-and-time表达式。计算中只用到这些值的日期部分。
【例】使用datediff()函数计算两个日期之间的间隔天数,SQL语句如下;

mysql> select datediff('2019-08-18 21:59:59','2018-07-18') as col1,
    -> datediff('2019-08-18 22:00:00','2019-08-20') as col2;+------+------+| col1 | col2 |+------+------+|  396 |   -2 |+------+------+1 row in set (0.00 sec)

(13)将日期和时间格式化的函数。

DATE_FORMAT时间日期格式:
在这里插入图片描述
1.date_format()
【例】使用date_format()函数格式化输出日期和时间值,SQL语句如下:

mysql> select date_format('2019-08-18 23:33:00','%w %m %y') as col1,
    ->  date_format('2019-08-18 23:33:00','%D %y %a %d %m %b %j') as col2;+---------+---------------------------+| col1    | col2                      |+---------+---------------------------+| 0 08 19 | 18th 19 Sun 18 08 Aug 230 |+---------+---------------------------+1 row in set (0.05 sec)

2.time_format()
【例】使用time_format(time,format)函数格式化输入时间值,SQL语句如下:

mysql> select time_format('23:39:30','%H %k %h %I %l');+------------------------------------------+| time_format('23:39:30','%H %k %h %I %l') |+------------------------------------------+| 23 23 11 11 11                           |+------------------------------------------+1 row in set (0.00 sec)

3.get_format()

get_format返回的格式字符串:
在这里插入图片描述
【例】使用get_format()函数显示不同格式化类型下的格式字符串,SQL语句如下:

mysql> select get_format(date,'eur'),get_format(date,'usa');+------------------------+------------------------+| get_format(date,'eur') | get_format(date,'usa') |+------------------------+------------------------+| %d.%m.%Y               | %m.%d.%Y               |+------------------------+------------------------+1 row in set (0.05 sec)

【例】在date_format()函数中,使用get_format函数返回的显示格式字符串来显示指定的日期值,SQL语句如下:

mysql> select date_format('2019-08-19 23:41:30',get_format(date,'usa'));+-----------------------------------------------------------+| date_format('2019-08-19 23:41:30',get_format(date,'usa')) |+-----------------------------------------------------------+| 08.19.2019                                                |+-----------------------------------------------------------+1 row in set (0.00 sec)
相关免费学习推荐:mysql数据库(视频)

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

679

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

320

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

346

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1095

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

357

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

675

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

573

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

415

2024.04.29

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 793人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号