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

如何在MySQL中将Fri Jan 10 00:00:00 UTC 1992格式日期转为YYYY-MM-DD

问题原因

DATE_FORMAT() 函数仅支持将MySQL原生的日期/时间类型值格式化为字符串,你传入的 Fri Jan 10 00:00:00 UTC 1992 是非标准格式的字符串,MySQL无法直接识别为合法日期类型,因此返回NULL。

正确实现方案

你需要先通过 STR_TO_DATE() 函数将原始字符串解析为MySQL支持的日期类型,再用 DATE_FORMAT() 转换为目标格式:

  1. 解析原始字符串的格式符对应关系:
    • 星期缩写:%a
    • 月份缩写:%b
    • 日期:%d
    • 时分秒格式:%T
    • 固定时区字符串:直接写UTC匹配
    • 4位年份:%Y
  2. 代码示例
    • 若要输出标准年-月-日格式(对应示例原始日期输出为1992-01-10):
      SELECT DATE_FORMAT(STR_TO_DATE(你的字段名, '%a %b %d %T UTC %Y'), '%Y-%m-%d') AS 转换后日期 FROM 你的表名;
      
    • 若要输出你提到的年-日-月格式(对应示例原始日期输出为1992-10-01):
      SELECT DATE_FORMAT(STR_TO_DATE(你的字段名, '%a %b %d %T UTC %Y'), '%Y-%d-%m') AS 转换后日期 FROM 你的表名;
      

注意事项

以上写法仅适用于原始字符串时区固定为UTC的场景,若时区不固定,需要先预处理掉时区部分再做解析。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:15:03