MySQL DATE 型別標準格式 'YYYY-MM-DD',但支援寬鬆輸入與隱含轉換。本文說明格式規則、寬鬆比較、例外情況、'0000-00-00' 特殊值、ODBC 相容、多種合法插入格式範例。
'YYYY-MM-DD' -- 如 '2024-01-15'
標準 SQL 要求**僅此格式**,MySQL 延伸支援更多。
以下皆合法插入 DATE 欄位:
INSERT INTO t (dt) VALUES (19970505); -- 數字
INSERT INTO t (dt) VALUES ('19970505'); -- 無分隔符
INSERT INTO t (dt) VALUES ('97-05-05'); -- 兩位年
INSERT INTO t (dt) VALUES ('1997.05.05'); -- 點分隔
INSERT INTO t (dt) VALUES ('1997 05 05'); -- 空格分隔
INSERT INTO t (dt) VALUES ('0000-00-00'); -- 零日期
使用 <, <=, =, >=, >, BETWEEN 比較 DATE/TIME/DATETIME/TIMESTAMP 與常數字串時:
| 情況 | 比較方式 |
|---|---|
| 比較兩個欄位 | 字串比較 |
| 欄位與運算式比較 | 字串比較 |
| 使用 IN / STRCMP() | 字串比較 |
NULL(ODBC 無法處理)NULLSELECT dt FROM t WHERE dt >= '1997-05-05';
SELECT dt FROM t WHERE dt >= 19970505;
SELECT MOD(dt, 100) FROM t WHERE dt >= 19970505;
SELECT dt FROM t WHERE dt >= '19970505';
'YYYY-MM-DD'WHERE dt >= CAST('2024-01-01' AS DATE)NULL,應用層統一處理