Mysql时间转换函数

Mysql时间转换函数

简介:MySQL 中常用的时间转换函数

一、函数简介

(一)DATE_FORMAT(date, format)

  1. 功能:将日期或日期时间类型的数据按照指定的格式进行格式化输出。
    示例:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

NOW() 函数返回当前的日期和时间。
%Y 表示四位的年份,%m 表示两位的月份,%d 表示两位的日期,%H 表示两位的小时(24 小时制),%i 表示两位的分钟,%s 表示两位的秒。因此,DATE_FORMAT(NOW(), ‘%Y-%m-%d %H:%i:%s’) 将当前日期和时间格式化为 YYYY-MM-DD HH:MM:SS 的形式。

(二)STR_TO_DATE(str, format)

  1. 功能:将字符串按照指定的格式转换为日期或日期时间类型。
  2. 示例代码:
SELECT STR_TO_DATE('2025-01-21 14:30:00', '%Y-%m-%d %H:%i:%s');

代码解释:
第一个参数 ‘2025-01-21 14:30:00’ 是一个字符串,第二个参数 ‘%Y-%m-%d %H:%i:%s’ 是该字符串的日期时间格式。此函数将字符串转换为日期时间类型。

(三)FROM_UNIXTIME(unix_timestamp[, format])

  1. 功能:将 Unix 时间戳转换为日期时间类型。如果提供了 format 参数,会按照指定的格式输出。

  2. 示例代码:

SELECT FROM_UNIXTIME(1672901257);
SELECT FROM_UNIXTIME(1672901257, '%Y-%m-%d %H:%i:%s');

代码解释:
第一个 SELECT 语句将 Unix 时间戳 1672901257 转换为日期时间类型,使用默认的格式。
第二个 SELECT 语句将 Unix 时间戳按照 YYYY-MM-DD HH:MM:SS 的格式进行转换。

(四)UNIX_TIMESTAMP([date])

1.功能:将日期或日期时间类型的数据转换为 Unix 时间戳。如果不传入 date 参数,默认使用当前时间。

  1. 示例代码:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP('2025-01-21 14:30:00');

代码解释:
第一个 SELECT 语句将当前时间转换为 Unix 时间戳。
第二个 SELECT 语句将 ‘2025-01-21 14:30:00’ 这个日期时间转换为 Unix 时间戳。

(五)TIMESTAMP(date) 和 TIMESTAMP(date1, date2)

1.功能:
TIMESTAMP(date) 将日期或日期时间表达式转换为 TIMESTAMP 类型。
TIMESTAMP(date1, date2) 将两个日期或日期时间表达式组合为一个 TIMESTAMP 类型。

  1. 示例代码:
SELECT TIMESTAMP('2025-01-21');
SELECT TIMESTAMP('2025-01-21 14:30:00', '12:00:00');

代码解释:
第一个 SELECT 语句将日期 ‘2025-01-21’ 转换为 TIMESTAMP 类型。
第二个 SELECT 语句将 ‘2025-01-21 14:30:00’ 和 ‘12:00:00’ 组合为一个 TIMESTAMP 类型,会将 ‘12:00:00’ 作为时间部分添加到 ‘2025-01-21 14:30:00’ 中。

(六)TIME_TO_SEC(time)

  1. 功能:将时间转换为秒数。
  2. 示例代码:
SELECT TIME_TO_SEC('14:30:00');

代码解释:
该函数将 ‘14:30:00’ 这个时间转换为秒数,结果为 52200(14 * 3600 + 30 * 60)

(七)SEC_TO_TIME(seconds)

  1. 功能:将秒数转换为时间。
  2. 示例代码:
SELECT SEC_TO_TIME(52200);

代码解释:
该函数将 52200 秒转换为时间,结果为 14:30:00。

二、使用注意事项

1、当使用 STR_TO_DATE 和 DATE_FORMAT 函数时,要确保 str 和 format 参数的格式匹配,否则会返回 NULL。
2、对于 FROM_UNIXTIME 和 UNIX_TIMESTAMP 函数,要注意时间戳的精度(秒级或毫秒级),如果是毫秒级时间戳,可能需要先进行转换(如除以 1000)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值