mysql 日期处理函数

博客介绍了MySQL数据库中日期相关操作。包括创建实验表,介绍date类型用于记录精确日期。还详细讲解了now()、year()、month()等多个日期函数的用法,如提取年、月、日,比较日期差值,将日期转换为天数等,并给出了相应的查询示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


首先创建一张实验用的一张表

drop table if exists t_student;

create table t_student(
  id int primary key auto_increment,
  name varchar(20) not null comment '姓名',
  birthday date comment '生日'
)Engine=InnoDB default charset utf8;


insert into t_student values(null,'tom','1992-02-03');
insert into t_student values(null,'jerry','1993-02-06');
insert into t_student values(null,'hank','1993-03-05');
insert into t_student values(null,'xiaoming',now());

 


    其中date 类型 是记录mysql 精确日期的类型


now() 函数
    获取当前时间

    

 

year() , month(),dayofmonth()
    上面三个函数是分别从一个日期或者时间中提取出年 ,月 ,日
     比如 想得到生日为2月份的学生
     select * from t_student where month(birthday) = 2;

    

 

monthname() 函数

 输出个月份的英文单词
    select monthname(birthday) from t_student;

    

timestampdiff() 函数
    比较两个日期间的差值
    例:学生的年龄
    select timestampdiff(year,birthday ,now()) as age from t_student;

    

 

     timestampdiff 函数的第一个参数为 计算结果的单位: 有year(年) month(月),day(日) 等等。

 

to_days()
    将日期转换成天数
    计算两个时间的天数,同timestampdiff(day,arg1,arg2) 是一个道理。
    查询生日小于当前日期60以内的学生
    select * from t_student where (to_days(now()) - to_days(birthday)) < 60;

    

 


date_add 和 date_sub
     根据一个日期 ,计算出另一个日期, date_add 是加上 date_sub 是减去
     select date_add('1970-1-1', interval 10 year); # 1970 年 加上10年

    

   

     select date_sub ('1970-1-1', interval 10 year); #1970年减去10年

  

 

     

 

转载于:https://www.cnblogs.com/haloujava/p/11184875.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值