MySQL字符串和时间戳之间相互转换

本文详细介绍MySQL中字符串与时间戳的相互转换方法。包括如何使用str_to_date和unix_timestamp函数将字符串转换为时间戳,以及如何利用FROM_UNIXTIME函数将时间戳转回字符串格式。适合数据库管理和开发人员阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL字符串和时间戳之间相互转换

一、字符串转时间戳

SELECT unix_timestamp(str_to_date('2018年7月1日 9:00-10:30', '%Y年%m月%d日'));

解释:
1.将字符串使用str_to_date 转化成mysql时间,再由unix_timestamp 将mysql时间转换成时间戳。
str_to_date 函数后面的第二个参数是想要格式化的字符串的格式,例如前面的字符串只取汉字 年月日 前面的值后面的值不去理会。
扩展:

 `SELECT str_to_date('2018年7月1日 9:08-10:30', '%Y年%m月%d日 %H:%i')`

result: 2018-07-01 09:08:00

获取字符串中完整的MySQL时间

3.unix_timestamp
将mysql的时间 格式化成时间戳,如果传递给该函数的是有规则的字符串也可以直接格式化,不需要str_to_date的转换。

二、时间戳转成字符串

FROM_UNIXTIME('1234567890', '%Y年%m-%d %H:%i:%S')

通过上面的函数将时间戳转成指定格式的字符串 其中连接符可以使用任意指定。时间戳可以是int也可以是字符串

### 如何在 MySQL 中将字符串转换时间戳 在处理数据时,有时会遇到需要将字符串类型的日期时间信息转换成 `TIMESTAMP` 类型的情况。MySQL 提供了几种方式来实现这一目标。 #### 使用 STR_TO_DATE 函数 对于特定格式的字符串可以使用 `STR_TO_DATE()` 函数将其解析并化为 `DATETIME` 或者 `TIMESTAMP` 类型的数据。此函数接受两个参数:一个是待化的时间表示形式作为字符串;另一个是指定该字符串所遵循的具体格式模式串[^1]。 例如: ```sql SELECT STR_TO_DATE('2021-1-1 00:00:00', '%Y-%m-%d %H:%i:%s') AS converted_timestamp; ``` 这段 SQL 将返回一个具有正确格式化的 `TIMESTAMP` 值。 #### 利用 UNIX_TIMESTAMP FROM_UNIXTIME 组合 如果输入的是 Unix 时间戳(即自纪元以来经过了多少秒),可以直接利用这两个内置函数来进行相互之间的变换。不过这里讨论的是从常规字符表达到标准时间戳,则只需关注后者即可[^2]。 比如下面的例子展示了如何把形如 `'YYYY-MM-DD HH:MM:SS'` 的字符串通过中间件变成真正的 `TIMESTAMP` 对象: ```sql SELECT FROM_UNIXTIME(UNIX_TIMESTAMP('2021-1-1 00:00:00')) AS unix_to_timestamp; ``` 需要注意的是,在实际应用过程中应当确保源字符串确实代表了一个合法有效的日期/时刻描述,并且其内部结构要严格匹配所提供的模板样式,否则可能会引发异常错误或者得到意想不到的结果。 另外值得注意的一点是在某些情况下可能还会碰到由于区域设置差异而导致的不同月份缩写的识别问题,因此建议尽可能采用完整的年月日小时分钟秒钟的形式书写日期时间字符串以减少不必要的麻烦[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值