MySQL的时间类型

🥇1.时间类型介绍

时间类型有 DATE、TIME、DATETIME、TIMESTAMP 和 YEAR 。

🥈1.1 DATE
# DATE 类型:
# 这个类型的格式是:'YYYY-MM-DD'
# 这个类型支持的范围:'1000-01-01' ~ '9999-12-31'
🥈1.2 TIME
# TIME 类型:
# 这个类型的格式是:'hh:mm:ss[.fraction]'
# 这个类型支持的范围:'-838:59:59.000000' ~ '838:59:59.000000'
🥈1.3 DATETIME
# DATETIME 类型:
# 这个类型的格式是:'YYYY-MM-DD hh:mm:ss[.fraction]'
# 这个类型支持的范围:'1000-01-01 00:00:00.000000' ~ '9999-12-31 23:59:59.499999'
🥈1.4 TIMESTAMP
# TIMESTAMP 类型:
# 这个类型的格式是:'YYYY-MM-DD hh:mm:ss[.fraction]
# 这个类型支持的范围:'1970-01-01 00:00:01.000000' ~ '2038-01-19 03:14:07.499999'
🥈1.5 YEAR
# YEAR 类型:
# 这个类型的格式是:'YYYY'
# 这个类型支持的范围:'1901' ~ '2155'

🥇2.时间相关的函数

🥈2.1 CURTIME()
# CURTIME()
# 返回值:"hh:mm:ss" 或 "hhmmss"
# 用法:
select CURDATE();
# 返回:2023-09-14
🥈2.2 DATE(expr)
# DATE(expr)
# 返回值:'YYYY-MM-DD'
# 用法:
select date('2023-09-14 22-31-03');
# 返回:2023-09-14
🥈2.3 DATEDIFF(expr1,expr2)
# DATEDIFF(expr1,expr2)
# 以天为单位,计算从一个日期到另一个日期相差的时间。
# 用法:
select datediff('2023-09-15','2023-09-14');
# 返回:1
select datediff('2023-09-14','2023-09-15');
# 返回:-1
🥈2.4 DATE_ADD()
# DATE_ADD()
# 用法:
# 在 2023-09-14 的基础上加一天,执行后的结果:2023-09-15
SELECT DATE_ADD('2023-09-14',INTERVAL 1 DAY);
# 在 2023-09-14 的基础上加一月,执行后的结果:2023-10-14
SELECT DATE_ADD('2023-09-14',INTERVAL 1 MONTH);
# 在 2023-09-14 的基础上加一年,执行后的结果:2024-09-14
SELECT DATE_ADD('2023-09-14',INTERVAL 1 YEAR);
# 其他用法可以查看官网。
🥈2.5 DATE_FORMAT(date,format)
# DATE_FORMAT(date,format)
# 用法:
SELECT DATE_FORMAT('2023-09-14 22:23:12', '%Y %M %D');
# 返回:2023 September 14th
SELECT DATE_FORMAT('2023-09-14 22:23:12', '%x-%m-%d');
# 返回:2023-09-14

# 其他用法可以看官方文档
🥈2.6 DATE_SUB(date,INTERVAL expr unit)
# DATE_SUB(date,INTERVAL expr unit)
# 用法:
# 在 2023-09-14 的基础上减去一天,执行后的结果:2023-09-13
select DATE_SUB('2023-09-14',INTERVAL 1 DAY);

# 在 2023-09-14 的基础上减去一月,执行后的结果:2023-08-14
select DATE_SUB('2023-09-14',INTERVAL 1 Month);

# 在 2023-09-14 的基础上减去一年,执行后的结果:2022-09-14
select DATE_SUB('2023-09-14',INTERVAL 1 YEAR);

🥇3.综合用法:

🥈3.1 建表
create table date_use(
  id int1 auto_increment primary key comment '主键 -- 注意:int1类型能存储的数据比较小',
  username varchar(20),
  birthday datetime comment '生日',
  create_at datetime default current_timestamp comment '记录创建时间',
  update_at datetime default current_timestamp on update current_timestamp comment '记录修改时间,记录发生改变时,时间也会变'
)comment '测试时间表';
🥈3.2 数据添加
insert into date_use(username, birthday) value ('张三1','2023-09-14 02:03:04');
insert into date_use(username, birthday) value ('张三2','2023-09-13 02:03:04');
insert into date_use(username, birthday) value ('张三3','2023-09-13 09:10:04');
insert into date_use(username, birthday) value ('张三4','2023-09-12 02:03:04');
insert into date_use(username, birthday) value ('张三5','2023-09-07 02:03:04');
insert into date_use(username, birthday) value ('张三6','2023-09-07 02:03:03');
insert into date_use(username, birthday) value ('张三7','2023-09-06 02:03:04');
insert into date_use(username, birthday) value ('张三8','2023-08-14 02:03:04');
insert into date_use(username, birthday) value ('张三9','2023-08-15 02:03:04');
insert into date_use(username, birthday) value ('张三10','2023-08-13 02:03:04');
🥈3.3 数据查询
🥉3.3.1 查询所有数据
select * from date_use;

image

🥉3.3.2 查询今天添加的记录
# 这里将 birthday 当做是对应的日期添加的记录。
# 也就是 相当于日常使用中的 create_at 字段中的内容。
# 这篇博客的日期是 2023-09-14

# 查询今天添加的记录
select * from date_use where date(birthday) = CURDATE();

image

🥉3.3.3 查询一周内添加的数据
select * from date_use where birthday >= DATE_SUB(CURDATE(),INTERVAL 7 day);

image

🥉3.3.4 查询一月添加的数据
select * from date_use where birthday >= DATE_SUB(CURDATE(),INTERVAL 1 month);

image

🥉3.3.5 查询一年添加的数据
 select * from date_use where birthday >= DATE_SUB(CURDATE(),INTERVAL 1 YEAR);

image

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值