日常建表習慣用 create tabel tb_name as select......,這種建表方式的其中一個缺點就是:系統會根據查詢出的字段,定義字段類型。有時候會把 '%Y-%m-%d' 格式的日期字段定義爲 varchar 。建模的時候苦不堪言。
那麼怎麼在建表過程中自己定義每一個字段的存儲類型呢? cast()函數來了,他帶着尚方寶劍來了...
基本格式:
case(字段名 as 類型)
常用的類型:
- CHAR[(N)] 字符型
- DATE 日期型
- DATETIME 日期和時間型
- DECIMAL float型
- SIGNED int
- TIME 時間型
舉例呈現:
CREATE table h_test AS
SELECT cast(a.add_time AS date) 日期
FROM b_table a