博客
关于我
MySQL的时间获取和时间转换
阅读量:571 次
发布时间:2019-03-11

本文共 2355 字,大约阅读时间需要 7 分钟。

MySQL 日期时间 函数大全

MySQL 提供了丰富的日期和时间函数,帮助开发者高效管理和操作日期时间数据。本文将详细介绍这些函数的功能及其用法。


一、获取当前日期和时间

1. NOW() 和时间戳相关函数

now() 是最常用的函数,返回当前日期和时间。它等同于以下函数:

  • current_timestamp()
  • current_timestamp
  • localtime()
  • localtimestamp()
-- 示例set @dt = now();  -- 当前日期和时间select date(@dt);  -- 只获取日期部分select time(@dt);  -- 只获取时间部分

2. sysdate() 函数

sysdate()now() 函数类似,但在函数执行时动态获取当前值。

-- 示例set @dt = sysdate();  -- 当前日期和时间select date(sysdate());  -- 只获取日期部分

二、日期和时间 Extract 函数

1. 提取日期和时间的各个部分

可以使用 EXTRACT() 函数从日期时间字符串中提取各个部分:

  • 示例代码:
set @dt = '2008-09-10 07:15:30.123456';select    extract(year from @dt), -- 2008    extract(month from @dt), -- 9    extract(day from @dt),   -- 10    extract(hour from @dt),  -- 7    extract(minute from @dt), -- 15    extract(seconds from @dt), -- 30    extract(microsecond from @dt); -- 123456

2. 提取日期和时间的组合

还可以提取更长的组合:

  • 示例代码:
select    extract(day_microsecond from @dt) -- 10071530123456

三、日期和时间的计算函数

1. 增加或减少时间间隔

DATE_ADD()DATE_SUB() 函数可以用于增加或减少日期和时间:

  • 示例代码:
select date_add('2008-08-08', interval 1 day);  -- 增加1天select date_sub('2008-08-08', interval 1 day);  -- 减少1天

2. Unix 时间戳转换

UNIX_TIMESTAMP()FROM_UNIXTIME() 用于将日期和时间转换为 Unix 时间戳:

  • 示例代码:
select unix_timestamp('2008-08-08 12:00:00');  -- 获取 Unix 时间戳select from_unixtime(unix_timestamp('2008-08-08 12:00:00'));  -- 再转换回日期和时间

四、日期和时间的日期格式化

1. 字符串转日期和时间

STR_TO_DATE()TIME_TO_STR() 用于将字符串转换为日期和时间:

  • 示例代码:
select str_to_date('08/09/2008', '%m/%d/%Y');  -- '2008-08-09'select time_to_sec('01:00:05');  -- 转换为秒

2. 日期和时间格式化为字符串

DATE_FORMAT()TIME_FORMAT() 用于将日期和时间格式化为特定格式:

  • 示例代码:
select date_format('2008-08-08', '%Y-%m-%d');  -- '2008-08-08'

五、日期和时间的时区转换

使用 DATE_ADD()DATE_SUB() 方法可以轻松实现时区转换:

  • 示例代码:
select date_add('2008-08-08 12:00:00', interval -8 hour);  -- 东八时区转换为 UTC

六、其他日期时间函数

1. 星期和月份名称

DAYNAME()MONTHNAME() 返回星期和月份名称:

  • 示例代码:
select dayname('2008-08-08');  -- 'Friday'select monthname('2008-08-08');  -- 'August'

2. 星期和月份位置

DAYOFWEEK()DAYOFMONTH() 返回日期在周和月中的位置:

  • 示例代码:
select dayofweek('2008-08-08');  -- 6(Sunday 为 1)

七、日期和时间的日期运算

1. 计算日期差

DATEDIFF()TIMEDIFF() 用于计算两个日期或时间的差值:

  • 示例代码:
select datediff('2008-08-08', '2008-08-01');  -- 7 天select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00');  -- 8:08:08

八、日期和时间的日期格式化

使用 GET_FORMAT() 函数获取日期和时间的格式字符串:

  • 示例代码:
select get_format(datetime, 'usa');  -- '%Y-%m-%d %h:%i:%s'

以上就是MySQL 中常用的日期和时间函数及其用法。通过合理组合这些函数,可以实现复杂的日期时间操作。

转载地址:http://jiqvz.baihongyu.com/

你可能感兴趣的文章
idea 在Debug 模式中运行语句中函数的方法
查看>>
eclipse“SVN检出”遇到问题 error getting dir list 的解决办法
查看>>
springboot2.1.1开启druid数据库连接池并开启监控
查看>>
vscode bash-4.3$ bash:git: command not found问题处理
查看>>
docker
查看>>
E: Sub-process /usr/bin/dpkg returned an error code (1)
查看>>
《朝花夕拾》金句摘抄(五)
查看>>
《朝花夕拾》金句摘抄(六)
查看>>
《金色梦乡》金句摘抄(六)
查看>>
mybatis+spring报错PropertyAccessException 1
查看>>
Boostrap技能点整理之【网格系统】
查看>>
长风破浪会有时,直挂云帆济沧海……
查看>>
hexo 报错 use_date_for_updated is deprecated...
查看>>
判断一个男人穷还是富,只看这几点!
查看>>
JavaScript的正则表达式实现邮箱校验
查看>>
JavaScript实现鼠标放上去之后高亮显示且隔行换色
查看>>
java百钱白鸡的算法
查看>>
sql server链接查询
查看>>
又一大波笑到肾抽筋,笑出六块腹肌的段子
查看>>
JSP实现文件上传——uploadFile.jsp
查看>>