FORMAT() 用於將欄位值按指定格式轉換為字串輸出,常用於數字千分位分隔、日期時間格式化等報表顯示需求。
SELECT FORMAT(column_name, format) FROM table_name;
| 參數 | 是否必填 | 說明 |
|---|---|---|
column_name | 是 | 要格式化的欄位名稱 |
format | 是 | 格式規範字串(視資料庫實作而異) |
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 21.35 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 25 |
-- 取得產品名稱、價格、以及當天日期 (格式化為 YYYY-MM-DD)
SELECT ProductName, Price, FORMAT(NOW(), 'YYYY-MM-DD') AS PerDate
FROM Products;
FORMAT(N, D) 將數字 N 格式化為 #,###.## 形式,D 為小數位數。**不支援日期格式化**,日期請用 DATE_FORMAT()。FORMAT(value, format [, culture]) 支援數字、日期、貨幣等 .NET 格式字串(如 'yyyy-MM-dd', 'C', 'N2')。TO_CHAR() 函數。TO_CHAR() 或 FORMAT() (9.4+,類似 C 的 sprintf)。-- 數字千分位 + 兩位小數
SELECT FORMAT(1234567.89, 2); -- 輸出: 1,234,567.89
-- 日期格式化 (使用 DATE_FORMAT)
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 2024-01-15 14:30:05
跨資料庫開發時,務必確認目標資料庫的 FORMAT() 實作細節,避免移植時出現語法錯誤或輸出不符預期。