MySQL常用日期时间函数示例详解

 更新时间:2024年06月24日 11:13:10   作者:morris131  
MySQL提供了大量的日期和时间函数,这些函数用于在查询中处理和操作日期与时间值,这篇文章主要介绍了MySQL常用日期时间函数,需要的朋友可以参考下

MySQL提供了大量的日期和时间函数,这些函数用于在查询中处理和操作日期与时间值。

参考官方文档:https://dev.mysql.com/doc/refman/8.4/en/date-and-time-functions.html

获取日期时间函数

now():获取当前的日期和时间,包含年、月、日、时、分、秒。

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2024-06-18 07:35:45 |
+---------------------+
1 row in set (0.00 sec)

curdate():获取当前的日期,只包含年、月、日部分。

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2024-06-18 |
+------------+
1 row in set (0.00 sec)

curtime():获取当前的时间,只包含时、分、秒部分。

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 07:37:31  |
+-----------+
1 row in set (0.00 sec)

日期与时间戳的转化

unix_timestamp:将日期转换为UNIX时间戳。

mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
|            1718696453 |
+-----------------------+
1 row in set (0.00 sec)

from_unixtime(timestamp)函数:是将UNIX时间戳转化为日期时间,与unix_timestamp(date)函数互为反函数。

mysql> select from_unixtime(1718696453);
+---------------------------+
| from_unixtime(1718696453) |
+---------------------------+
| 2024-06-18 07:40:53       |
+---------------------------+
1 row in set (0.00 sec)

日期格式化

date_format():将日期转化为指定格式的字符串。

mysql> select date_format(now(), '%Y-%m-%d %H:%i:%s');
+-----------------------------------------+
| date_format(now(), '%Y-%m-%d %H:%i:%s') |
+-----------------------------------------+
| 2024-06-18 07:47:16                     |
+-----------------------------------------+
1 row in set (0.00 sec)

str_to_date():将指定格式的字符串转化为日期。

mysql> select str_to_date('2024-06-18 07:47:16', '%Y-%m-%d %H:%i:%s');
+---------------------------------------------------------+
| str_to_date('2024-06-18 07:47:16', '%Y-%m-%d %H:%i:%s') |
+---------------------------------------------------------+
| 2024-06-18 07:47:16                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

下面是一些常用的日期格式符号:

  • %Y:四位数的年份(如:2022)
  • %y:两位数的年份(如:22)
  • %m:两位数的月份(01~12)
  • %d:两位数的日期(01~31)
  • %H:两位数的小时(00~23)
  • %i:两位数的分钟(00~59)
  • %s:两位数的秒钟(00~59)

更多的日期格式符号可以参考官方文档。

注意:在使用str_to_date函数时,请确保传入的日期字符串和格式字符串的格式匹配,否则可能会得到错误的结果。

日期时间的运算

date_add(date,INTERVAL expr unit):在指定日期上增加时间。

date_sub(date,INTERVAL expr unit),在指定日期上减去时间。

参数说明:

  • date参数指定开始日期或日期时间值。
  • expr是一个表达式,指定从开始日期加上或减去的间隔值;expr被计算为一个字符串;它可以以-开头表示负间隔。
  • unit是一个关键字,指示表达式应使用的单位。
mysql> select date_add('2024-04-10',INTERVAL 1 DAY);
+---------------------------------------+
| date_add('2024-04-10',INTERVAL 1 DAY) |
+---------------------------------------+
| 2024-04-11                            |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select date_add('2024-04-10',INTERVAL -1 DAY);
+----------------------------------------+
| date_add('2024-04-10',INTERVAL -1 DAY) |
+----------------------------------------+
| 2024-04-09                             |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> select date_sub('2024-04-10',INTERVAL -1 DAY);
+----------------------------------------+
| date_sub('2024-04-10',INTERVAL -1 DAY) |
+----------------------------------------+
| 2024-04-11                             |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> select date_sub('2024-04-10',INTERVAL 1 DAY);
+---------------------------------------+
| date_sub('2024-04-10',INTERVAL 1 DAY) |
+---------------------------------------+
| 2024-04-09                            |
+---------------------------------------+
1 row in set (0.00 sec)

datediff(expr1,expr2)函数:返回expr1−expr2,以从一个日期到另一个日期的天数表示。其中expr1和expr2是日期或日期和时间表达式;计算中只使用值的日期部分。

mysql> select datediff('2024-04-10', '2024-05-10');
+--------------------------------------+
| datediff('2024-04-10', '2024-05-10') |
+--------------------------------------+
|                                  -30 |
+--------------------------------------+
1 row in set (0.00 sec)

到此这篇关于MySQL常用日期时间函数的文章就介绍到这了,更多相关MySQL常用日期时间函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL页分裂从原理到优化的全面解析

    MySQL页分裂从原理到优化的全面解析

    文章详细介绍了MySQL页分裂的概念、触发条件、底层原理、性能影响以及优化策略,页分裂是InnoDB引擎中B+树索引的一种自动扩容机制,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-01-01
  • MySQL sql_mode从入门到精通

    MySQL sql_mode从入门到精通

    sql_mode是MySQL中语法校验、数据校验、行为兼容的核心配置,本文就来详细的介绍一下MySQL sql_mode的使用,感兴趣的可以了解一下
    2026-03-03
  • MySQL处理重复数据的学习笔记

    MySQL处理重复数据的学习笔记

    在本篇文章里小编给大家分享的是一篇关于MySQL处理重复数据的学习笔记,需要的朋友们可以参考下。
    2020-03-03
  • MySQL超详细实现用户管理实例

    MySQL超详细实现用户管理实例

    MySQL 是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定不同权限。在前面的章节中我们使用的是 root 用户,该用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户密码等管理权限
    2022-06-06
  • MySQL验证用户权限的方法

    MySQL验证用户权限的方法

    这篇文章主要介绍了MySQL验证用户权限的方法,需要的朋友可以参考下
    2015-11-11
  • Linux系统下Mysql使用简单教程(一)

    Linux系统下Mysql使用简单教程(一)

    这篇文章主要介绍了Linux系统下Mysql使用简单教程(一)的相关资料,需要的朋友可以参考下
    2016-05-05
  • MySQL配置文件my.cnf参数优化和中文详解

    MySQL配置文件my.cnf参数优化和中文详解

    这篇文章主要介绍了MySQL配置文件my.cnf参数优化和中文详解,非常详细的用中文注释了各个参数的作用以及建议值,需要的朋友可以参考下
    2014-03-03
  • mysql时间戳转成常用可读时间格式的两种方法

    mysql时间戳转成常用可读时间格式的两种方法

    mysql时间戳转成常用可读时间格式的两种方法,需要的朋友可以参考下。
    2010-09-09
  • mysql配置文件的使用教程

    mysql配置文件的使用教程

    这篇文章主要介绍了mysql配置文件的使用教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • mysql通过binlog日志复制主从同步的实现

    mysql通过binlog日志复制主从同步的实现

    本文主要介绍了mysql通过binlog日志复制主从同步的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05

最新评论