MySQL技术内幕:SQL编程 第2章 数据类型 读书笔记

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;
原文地址:https://www.cnblogs.com/weixiaole/p/6270328.html