当前位置: 首页 > news >正文

MySQL中日期和时间戳的转换:字符到DATE和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. 日期类型和时间戳类型之间的转换

  • 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_TIMESTAMPDATE/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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Codeforces Round 920 (Div. 3)(A,B,C,D)
  • FreeRTOS学习笔记—③RTOS内存管理篇(正在更新中)
  • 图像边缘检测技术详解:利用OpenCV实现Sobel算子
  • 016 交换网络的弹性设计与高可用性
  • 出现 TypeError: Cannot read properties of undefined (reading ‘getUserMedia‘) 解决方法
  • 12、Django Admin在列表视图页面上显示计算字段
  • 计算机毕业设计 半成品配菜平台 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
  • 串行总线舵机
  • C#数组中的Rank,GetUpperBound(), GetLength()
  • 云计算和传统IT相比,有哪些优势?
  • 爬虫练习(js逆向解密)
  • 操作系统体系结构分类
  • Python爬虫:通过js逆向获取某瓜视频的下载链接
  • 计算机岗位(面试)
  • Leetcode Day21组合总和
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [译]前端离线指南(上)
  • 【译】理解JavaScript:new 关键字
  • android 一些 utils
  • angular2开源库收集
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • Java 内存分配及垃圾回收机制初探
  • java8-模拟hadoop
  • Mysql数据库的条件查询语句
  • Spring Boot MyBatis配置多种数据库
  • Vue 动态创建 component
  • Vue.js-Day01
  • 不上全站https的网站你们就等着被恶心死吧
  • 翻译:Hystrix - How To Use
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 数据仓库的几种建模方法
  • 怎么把视频里的音乐提取出来
  • 转载:[译] 内容加速黑科技趣谈
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 积累各种好的链接
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • !!Dom4j 学习笔记
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $.ajax()
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (9)STL算法之逆转旋转
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (TOJ2804)Even? Odd?
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四) 虚拟摄像头vivi体验
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转)memcache、redis缓存