2.1 类型属性
2.1.1 UNSIGNED
数字无符号化, INT的值 -2147483648 ~ 2147483647 INT UNSIGNED的值 0 ~ 4294967295
int a = 1; int b = 2; a-b=-1
unsigned a = 1; unsigned b = 2; a-b=4294967295(Linux) Mac 报错 如果想要得到-1 mysql> SET sql_mode='NO_UNSIGNED_SUBTRACTION';
2.1.2 ZEROFILL
用0填充空位 如 int(4) ZEROFILL 的 1 为 0001
2.2 SQL_MODE
SQL的模式设置,有很多种,如SQL规范语法,规范数据。
2.3 日期和时间类型
DATETIME 8字节 YYYY-MM-DD HH:MM:SS
DATE 3字节 YYYY-MM-DD
TIMESTAMP 4字节 YYYY-MM-DD HH:MM:SS 可以设置成每次更新自动更新为当前时间 create table t(a int,b timestamp default on update current_timestamp)
YEAR 1字节
TIME 3字节
2.4 日期函数
NOW()==CRRENT_TIMESTAMP DATE_ADD() DATE_SUB()
select now() as now,date_add(now(),interval 1 day) as tomorrow, date_sub(now(),interval 1 day) as yesterday; day 可以替换成 hour week month minute等
2.5 星期函数
weekday(now()) dayofweek() dayname()
按周 月 天 分组统计 %Y%u 等参数是DATE_FORMAT参数
select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') months,count(caseid) count from tc_case group by months;