首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL STR_TO_DATE 日期字符串轉換避坑:%h 與 %H 的致命差異

     編輯:MySQL 綜合教學

MySQL STR_TO_DATE 日期字符串轉換避坑:%h 與 %H 的致命差異

現象

SELECT DATE_FORMAT(STR_TO_DATE('20150922 13:01:01', '%Y%m%d %H:%m:%s'), '%H:%m'); -- 13:01 ✅
SELECT DATE_FORMAT(STR_TO_DATE('20150922 12:55:00', '%Y%m%d %H:%m:%s'), '%H:%m'); -- NULL ❌ (Warning 1411)

根因排查

  1. SHOW WARNINGS; 提示 Incorrect datetime value;
  2. 改用標準格式 %Y-%m-%d %H:%i:%s 皆正常;
  3. 鎖定問題在 %h(12小時制)vs %H(24小時制):13:00 超出 12 小時範圍導致解析失敗。

正確格式模板

場景格式字符串
緊湊格式'%Y%m%d %H:%i:%s'
標準格式'%Y-%m-%d %H:%i:%s'

結論:解析 24 小時制時間務必用大寫 %H,%h 僅適用 01-12 時。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved