日常建表习惯用 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