Mysql日期数据存储及使用方法

  最近发现许多同学对日期数据(YYYY-MM-DD hh:mm:ss)比较陌生,导致在表存储和表查询阶段出现了诸多问题,遂写下该博文,期望能够帮助同学掌握日期数据的常见处理方法。
  日期数据有其固定的数据存储格式为datetime,但有时我们为了便捷会直接将其存成char字符型的数据,注意不要将日期数据存为数值型,由此我们分别建立两张test表,相关程序如下:

· 日期数据存储方法

-- 创建test01表,为datetime型
create table test01(
user_id int(10),
birthday datetime #datetime最大宽度为6,默认不填
);
insert into test01 values(10001,"1988-01-05"),(10002,"1991-02-05");

-- 创建test02表,为char型
create table test02(
user_id int(10),
birthday char(20)
);
insert into test02 values(10001,"1988-01-05"),(10002,"1991-02-05");

· 日期数据查询方法

-- 其中test01替换成test02结果相同
-- 查询年、月、日
select year(birthday) 年份,month(birthday) 月份,day(birthday) 日期 from test01; 

-- 增加一年、添加一月、减少一月
select date_add(birthday,interval 1 day) as 日期加一天,
       date_add(birthday,interval 1 month) as 日期加一月,
       date_add(birthday,interval -1 month) as 日期减一月
from test01; 

-- 查询当前时间 
-- 对应输出为"YYYY-MM-DD hh:mm:ss","YYYY-MM-DD","hh:mm:ss"
select now(),CURDATE(),CURTIME(); 

-- 计算当前日期与生日相差天数
select DATEDIFF(CURDATE(),birthday) 相差天数 from test01; 

分类: 数据库技术