MySQL实现字符到DATE和TIMESTAMP的相互转换的方法

 更新时间:2026年03月15日 15:18:09   作者:波波七  
本文详细介绍了MySQL中日期、时间戳和字符串之间的相互转换方法,包括使用STR_TO_DATE()、DATE_FORMAT()、DATE()、UNIX_TIMESTAMP()、FROM_UNIXTIME()、CAST、CONVERT以及CONVERT_TZ等函数进行转换,需要的朋友可以参考下

在MySQL中,经常需要在 DATETIMESTAMP 和字符串之间进行相互转换。以下是一些常见的转换方法:

1.字符串到日期/时间类型

字符串转 DATE:

使用 STR_TO_DATE() 函数将字符串转换为 DATE 类型。你需要提供字符串的格式。

SELECT STR_TO_DATE('2024-08-24', '%Y-%m-%d') AS my_date;

字符串转 TIMESTAMP:

同样使用 STR_TO_DATE() 函数,但格式要包括时间部分。

SELECT STR_TO_DATE('2024-08-24 14:35:00', '%Y-%m-%d %H:%i:%s') AS my_timestamp;

2.日期/时间类型到字符串

DATE 转字符串:

使用 DATE_FORMAT() 函数将 DATE 转换为指定格式的字符串。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS date_str;

TIMESTAMP 转字符串:

使用 DATE_FORMAT() 函数将 TIMESTAMP 转换为指定格式的字符串。

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS timestamp_str;

3.日期类型和时间戳类型之间的转换

DATETIMESTAMP:

DATE 类型只有日期部分,没有时间部分,MySQL 在转换时会默认将时间部分设置为 00:00:00

SELECT CAST('2024-08-24' AS DATETIME) AS date_to_timestamp;

TIMESTAMPDATE:

使用 DATE() 函数从 TIMESTAMP 中提取日期部分。

SELECT DATE(NOW()) AS timestamp_to_date;

4.UNIX_TIMESTAMP和DATE/TIMESTAMP的相互转换

UNIX_TIMESTAMPTIMESTAMP:

使用 FROM_UNIXTIME() 函数将 UNIX_TIMESTAMP 转换为 TIMESTAMP

-- 将UNIX时间戳转为时间戳
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()) AS unix_to_timestamp;
-- UNIX时间戳转时间戳 (如果是13位需要除1000)
SELECT FROM_UNIXTIME(1692874200) AS unix_to_timestamp;

TIMESTAMPUNIX_TIMESTAMP:

使用 UNIX_TIMESTAMP() 函数将 TIMESTAMP 转换为 UNIX_TIMESTAMP

-- 将时间戳转换为UNIX时间戳
SELECT UNIX_TIMESTAMP(NOW()) AS timestamp_to_unix;

5.直接通过类型转换函数

CAST 和 CONVERT 函数:

使用 CAST()CONVERT() 函数可以在 DATETIMESTAMP 和字符串之间进行转换。

SELECT CAST('2024-08-24 14:35:00' AS DATE) AS cast_to_date;

SELECT CONVERT(NOW(), CHAR) AS convert_to_string;

6. 字符串到日期或时间戳,带时区的转换

CONVERT_TZ: 将时间戳从一个时区转换到另一个时区。

– 将UTC时间戳转换为东八区时间
SELECT CONVERT_TZ(‘2024-08-24 06:00:00’, ‘+00:00’, ‘+08:00’);

7. 字符串直接转换为时间戳

如果字符串格式与时间戳的默认格式一致,可以直接进行转换,这会自动将字符串转换为时间戳。注意这种方法仅适用于字符串格式精确匹配默认的DATETIME格式。

SELECT ‘2024-08-24 14:30:00’ + 0 AS timestamp_value;

常用的格式化符号:

  • %Y 年(四位)
  • %m 月(两位)
  • %d 日(两位)
  • %H 小时(24小时制)
  • %i 分钟
  • %s

以上就是MySQL实现字符到DATE和TIMESTAMP的相互转换的详细内容,更多关于MySQL字符到DATE和TIMESTAMP转换的资料请关注脚本之家其它相关文章!

相关文章

  • win2008下mysql8.0.11升级mysql8.0.17版本详细步骤

    win2008下mysql8.0.11升级mysql8.0.17版本详细步骤

    这篇文章主要为大家详细介绍了win2008下mysql8.0.11升级mysql8.0.17版本详细步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • MySQL Galera Cluster部署与使用

    MySQL Galera Cluster部署与使用

    MySQLGaleraCluster是一种高可用、同步复制的数据库解决方案,本文主要介绍了MySQL Galera Cluster 部署与使用,具有一定的参考价值,感兴趣的可以了解一下
    2025-03-03
  • MySQL分布式恢复进阶

    MySQL分布式恢复进阶

    这篇文章主要介绍了MySQL分布式恢复进阶,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-07-07
  • 轻松解决MySQL忘记密码如何重置的方法

    轻松解决MySQL忘记密码如何重置的方法

    这篇文章主要为大家介绍了MySQL忘记密码如何重置的方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • MySQL group by语句如何优化

    MySQL group by语句如何优化

    这篇文章主要介绍了MySQL group by语句如何优化,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • 详解MySQL数据库insert和update语句

    详解MySQL数据库insert和update语句

    用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。接下来通过本文给大家介绍MySQL数据库insert和update语句,需要的朋友一起学习吧
    2016-04-04
  • 深入mysql慢查询设置的详解

    深入mysql慢查询设置的详解

    本篇文章是对mysql慢查询设置进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql密码忘了的问题及解决方案

    mysql密码忘了的问题及解决方案

    这篇文章主要介绍了mysql密码忘了的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • mysql之key和index的区别及创建删除索引方式

    mysql之key和index的区别及创建删除索引方式

    这篇文章主要介绍了mysql之key和index的区别及创建删除索引方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MySQL添加唯一索引的常见方法

    MySQL添加唯一索引的常见方法

    唯一索引是MySQL中保证数据完整性的重要工具,它强制要求索引列的值必须唯一,,与主键索引不同,唯一索引允许存在多个,且不隐含非空约束,本文给大家介绍了关于MySQL添加唯一索引的常见方法,需要的朋友可以参考下
    2026-02-02

最新评论