MySQL中日期和时间戳转换之字符到DATE和TIMESTAMP的相互转换

 更新时间:2024年12月12日 08:39:40   作者:promise524  
这篇文章主要介绍了MySQL中日期和时间戳转换之字符到DATE和TIMESTAMP相互转换的相关资料,包括字符串与日期/时间类型之间的转换,日期/时间类型之间的转换,UNIX_TIMESTAMP与日期/时间类型之间的转换以及时区转换,需要的朋友可以参考下

在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. 日期类型和时间戳类型之间的转换

  • DATE 转 TIMESTAMP:

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

    SELECT CAST('2024-08-24' AS DATETIME) AS date_to_timestamp;
    
  • TIMESTAMP 转 DATE:

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

    SELECT DATE(NOW()) AS timestamp_to_date;
    

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

  • UNIX_TIMESTAMP 转 TIMESTAMP:

    使用 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;
    
  • TIMESTAMP 转 UNIX_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相互转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 简单了解MYSQL数据库优化阶段

    简单了解MYSQL数据库优化阶段

    这篇文章主要介绍了简单了解MYSQL数据库优化阶段,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Mysql使用简单教程(三)

    Mysql使用简单教程(三)

    这篇文章主要介绍了Mysql使用简单教程(三) 的相关资料,需要的朋友可以参考下
    2016-05-05
  • MySql主键id不推荐使用UUID的原因分析

    MySql主键id不推荐使用UUID的原因分析

    MySQL的索引主要分为主键索引(PRIMARY KEY),唯一索引(UNIQUE) ,普通索引(INDEX)和全文索引(FULLTEXT) ,主键索引是一种特殊的唯一索引,不允许有空值,这篇文章主要介绍了MySql主键id不推荐使用UUID的原因分析,需要的朋友可以参考下
    2023-03-03
  • Starting MySQL.Manager of pid-file quit without updating file.[FAILED]的解决方法

    Starting MySQL.Manager of pid-file quit without updating fil

    因为硬盘满了,Starting MySQL.Manager of pid-file quit without updating file.[FAILED]
    2010-02-02
  • MySQL order by与group by查询优化实现详解

    MySQL order by与group by查询优化实现详解

    order by 子句尽量使用index方式排序(即using index),避免使用filesort方式排序(即using filesort)。Index方式效率高,它指MySQL扫描索引本身完成排序,filesort则效率低
    2022-11-11
  • MySQL中锁的相关问题

    MySQL中锁的相关问题

    这篇文章主要介绍了MySQL中锁的相关问题,本文给大家介绍了从对数据操作的粒度分 ,从对数据操作的类型分,给大家介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • 在MySQL中操作克隆表的教程

    在MySQL中操作克隆表的教程

    这篇文章主要介绍了在MySQL中操作克隆表的教程,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Mac操作系统下MySQL密码忘记后重置密码的方法

    Mac操作系统下MySQL密码忘记后重置密码的方法

    本文给大家介绍Mac下忘记MySQL密码后重置密码的方法,下面通过关闭mysql服务器,配置短命令相关操作,完成重置密码功能,非常不错,具有参考借鉴价值,感兴趣的朋友可以参考下
    2016-06-06
  • 使用MySQL实现高效的用户昵称模糊搜索

    使用MySQL实现高效的用户昵称模糊搜索

    在大型系统中,用户表中的昵称字段需要支持高效的模糊搜索,并且必须处理包含特殊字符的查询,本文将介绍一种在MySQL中实现高效模糊搜索的解决方案,能够支持特殊字符,并且利用MySQL自身的全文索引机制来优化搜索性能,需要的朋友可以参考下
    2024-05-05
  • mysql外连接与内连接查询的不同之处

    mysql外连接与内连接查询的不同之处

    在关系型数据库中,我们经常是把数据存储到多个相互关联的表中,这些相互关联的表通过指定的列发生联系,下面这篇文章主要给大家介绍了关于mysql外连接与内连接查询的不同之处,需要的朋友可以参考下
    2021-06-06

最新评论