You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术咨询:如何将含毫秒的时间字符串转为日期及MySQL str_to_date用法疑问

搞定带毫秒的时间字符串转换问题

嘿,我来帮你理清这两个关键点:

先搞懂.000是什么含义

那个.000是时间的毫秒(milliseconds)部分,代表这个时间点的毫秒值为0。MySQL的DATETIME类型支持小数秒(最多6位,对应微秒级精度),这里的3位就是用来记录毫秒粒度的,目的是让时间记录更精准。

用MySQL的STR_TO_DATE转成你要的日期格式

要把2020-05-14 14:16:36.000转换成2020-05-14的日期格式,你需要先完整解析字符串,再提取日期部分:

具体SQL示例

  • 推荐方案:直接转换为DATE类型(这是标准的日期类型,而非字符串)
SELECT DATE(STR_TO_DATE('2020-05-14 14:16:36.000', '%Y-%m-%d %H:%i:%s.%f')) AS target_date;

执行后会返回2020-05-14的DATE类型值,显示出来就是你需要的格式。

  • 备选方案:转换为字符串形式的日期(如果确实需要字符串结果)
SELECT DATE_FORMAT(STR_TO_DATE('2020-05-14 14:16:36.000', '%Y-%m-%d %H:%i:%s.%f'), '%Y-%m-%d') AS target_date_str;

关键提醒

一定要在STR_TO_DATE的格式字符串里加上%f,用来匹配.000这部分!如果漏掉它,MySQL会因为无法匹配字符串的尾部内容,直接返回NULL,这点特别重要。

内容的提问来源于stack exchange,提问作者asuscu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:57:39