0

0

MySQL时间戳转日期教程 13位时间戳格式转换的完整步骤

看不見的法師

看不見的法師

发布时间:2025-08-19 08:44:01

|

872人浏览过

|

来源于php中文网

原创

将13位毫秒级时间戳转换为MySQL日期,需先除以1000转为秒级,再用FROM_UNIXTIME()函数转换为DATETIME格式,如SELECT FROM_UNIXTIME(create_time/1000) AS order_time FROM orders;若存在时区差异,可结合SET time_zone或CONVERT_TZ()函数调整,确保时间准确;也可通过自定义函数或应用程序层(如PHP、Python)进行更灵活的转换与格式化处理。

mysql时间戳转日期教程 13位时间戳格式转换的完整步骤

将MySQL中的13位时间戳转换为日期,核心在于理解时间戳的精度和MySQL的日期时间类型,然后利用合适的函数进行转换。简单来说,就是将毫秒级的时间戳除以1000,使其变为秒级,再将其转换为MySQL可识别的日期时间格式。

解决方案

  1. 理解时间戳精度: 13位时间戳通常表示毫秒级别。MySQL的

    FROM_UNIXTIME()
    函数默认处理的是秒级别的时间戳。

  2. 转换思路: 需要先将13位时间戳除以1000,转换为10位秒级时间戳,然后再利用

    FROM_UNIXTIME()
    函数进行转换。

  3. SQL语句实现:

    SELECT FROM_UNIXTIME(your_timestamp_field / 1000) AS datetime_value FROM your_table;
    • your_timestamp_field
      :替换为你的时间戳字段名。
    • your_table
      :替换为你的表名。
    • / 1000
      :将毫秒级时间戳转换为秒级。
    • FROM_UNIXTIME()
      :MySQL内置函数,将Unix时间戳转换为日期时间格式。
    • datetime_value
      :转换后的日期时间字段别名。
  4. 示例:

    假设你的表名为

    orders
    ,时间戳字段名为
    create_time
    ,包含13位时间戳。

    SELECT FROM_UNIXTIME(create_time / 1000) AS order_time FROM orders;

    这条SQL语句会查询

    orders
    表,将
    create_time
    字段的13位时间戳转换为日期时间格式,并将结果命名为
    order_time

如何处理时区问题?

MySQL服务器和应用程序可能使用不同的时区,这会导致时间戳转换后的日期时间不正确。需要考虑时区转换。

  1. 确定服务器时区: 使用

    SELECT @@global.time_zone, @@session.time_zone;
    查询全局和会话时区设置。

  2. 设置正确的时区: 可以使用

    SET time_zone = '+08:00';
    设置会话时区为东八区(北京时间)。这只影响当前会话。如果要永久更改,需要修改MySQL的配置文件。

  3. 使用

    CONVERT_TZ()
    函数: 如果需要更精确的时区转换,可以使用
    CONVERT_TZ()
    函数。例如,将UTC时间转换为东八区时间:

    Digram
    Digram

    让Figma更好用的AI神器

    下载
    SELECT CONVERT_TZ(FROM_UNIXTIME(create_time / 1000), 'UTC', '+08:00') AS order_time FROM orders;
    • 'UTC'
      :原始时区。
    • '+08:00'
      :目标时区。

除了FROM_UNIXTIME,还有其他转换方法吗?

虽然

FROM_UNIXTIME
是最常用的方法,但一些情况下,你可能需要更灵活的转换方式,或者你的MySQL版本不支持
FROM_UNIXTIME
函数。

  1. 自定义函数: 可以创建一个自定义函数来处理时间戳转换。这在处理复杂逻辑或特定格式要求时非常有用。

    DELIMITER //
    CREATE FUNCTION timestamp_to_datetime(timestamp BIGINT)
    RETURNS DATETIME
    BEGIN
      RETURN FROM_UNIXTIME(timestamp / 1000);
    END //
    DELIMITER ;
    
    SELECT timestamp_to_datetime(create_time) AS order_time FROM orders;
    • DELIMITER //
      DELIMITER ;
      用于定义函数的开始和结束,因为函数体中包含分号。
    • timestamp BIGINT
      :函数接受一个BIGINT类型的参数,即时间戳。
    • RETURNS DATETIME
      :函数返回一个DATETIME类型的值。
  2. 编程语言处理: 在应用程序代码(例如PHP、Python、Java)中进行转换。将13位时间戳从数据库中取出,然后在应用程序中使用相应的日期时间库进行转换和格式化。例如,在PHP中:

    setTimezone(new DateTimeZone('Asia/Shanghai')); // 设置时区
    echo $datetime->format('Y-m-d H:i:s'); // 输出格式化的日期时间
    ?>

    这种方式的优点是可以更灵活地控制日期时间的格式和时区,但需要在应用程序中增加额外的处理逻辑。

为什么我的时间戳转换后日期不正确?常见错误排查

即使使用了正确的转换方法,仍然可能遇到日期不正确的问题。常见的原因和解决方法如下:

  1. 时间戳数据类型错误: 确保时间戳字段的数据类型是BIGINT或INT。如果数据类型不正确,可能会导致时间戳被截断或解释错误。

  2. 时间戳单位错误: 确认时间戳的单位是毫秒而不是秒。如果时间戳已经是秒级别的,就不需要再除以1000。

  3. 时区设置错误: 检查MySQL服务器、数据库连接和应用程序的时区设置是否一致。不一致的时区设置会导致日期时间偏差。

  4. 夏令时影响: 夏令时(Daylight Saving Time,DST)可能会影响日期时间的计算。确保你的代码和数据库能够正确处理夏令时。

  5. 数据错误: 检查时间戳本身是否正确。错误的时间戳会导致转换后的日期时间不正确。可以尝试使用在线时间戳转换工具验证时间戳的正确性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

707

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

327

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

350

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1221

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

360

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

819

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

581

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

423

2024.04.29

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

22

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 812人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号