MySQL常用日期查询-超全

这篇博客详细介绍了如何在MySQL中进行日期查询,包括获取当前时间的整分、整小时、昨天的时间,以及当天、昨天、明天的起止时间点,同周及不同周的日期范围,同时探讨了MySQL的日期函数、日期与字符串转换、日期取值转换和日期增减计算等操作。

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

-- ----------------------------------时间:

-- 当前时间的整分

select TIMESTAMP(date_format(now(),'%Y-%m-%d %H:%i:00'))

-- 当前时间的整小时

select TIMESTAMP(date_format(now(),'%Y-%m-%d %H:00:00'))

-- 昨天的这个时间

select SUBDATE(now(),INTERVAL 1 day)

 

-- --------------------------------天:

-- 当天的0点0分0秒

select TIMESTAMP(CURDATE())

-- 当天的23点59分59秒

select TIMESTAMP(CURDATE(),'23:59:59')

-- 昨天的0点0分0秒

select TIMESTAMP(SUBDATE(CURDATE(),INTERVAL 1 day))

-- 昨天的23点59分59秒

select TIMESTAMP(SUBDATE(CURDATE(),INTERVAL 1 day),'23:59:59')

-- 明天的0点0分0秒

select TIMESTAMP(ADDDATE(CURDATE(),INTERVAL 1 day))

-- 明天的23点59分59秒

select TIMESTAMP(ADDDATE(CURDATE(),INTERVAL 1 day),'23:59:59')

 

-- ---------------------------------周:

-- 当周第一天的0点0分0秒

select TIMESTAMP(SUBDATE(CURDATE(),WEEKDAY(curdate())))

-- 当周第一天的23点59分59秒

select TIMESTAMP(SUBDATE(CURDATE(),WEEKDAY(curdate())),'23:59:59')

-- 当周最后一天的0点0分0秒

select TIMESTAMP(ADDDATE(curdate(),6-WEEKDAY(curdate())))

-- 当周最后一天的23点59分59秒

select TIMESTAMP(ADDDATE(curdate(),6-WEEKDAY(curdate())),'23:59:59')

-- 上周同天的0点0分0秒

select TIMESTAMP(SUBDATE(CURDATE(), INTERVAL 1 week))

-- 上周同天的23点59分59秒

select TIMESTAMP(SUBDATE(CURDATE(), INTERVAL 1 week),'23:59:59')

-- 上周第一天的0点0分0秒

select TIMESTAMP(SUBDATE(SUBDATE(CURDATE(),WEEKDAY(curdate())),INTERVAL 1 week))

-- 上周第一天的23点59分59秒

select TIMESTAMP(SUBDATE(SUBDATE(CURDATE(),WEEKDAY(curdate())),INTERVAL 1 week),'23:59:59')

-- 上周最后一天的0点0分0秒

select TIMESTAMP(SUBDATE(ADDDATE(curdate(),6-WEEKDAY(curdate())), INTERVAL 1 week))

-- 上周最后一天的23点59分59秒

select TIMESTAMP(SUBDATE(ADDDATE(curdate(),6-WEEKDAY(curdate())), INTERVAL 1 week),'23:59:59')

-- 下周同天的0点0分0秒

select TIMESTAMP(ADDDATE(CURDATE(), INTERVAL 1 week))

-- 下周同天的23点59分59秒

select TIMESTAMP(ADDDATE(CURDATE(), INTERVAL 1 week),'23:59:59')

-- 下周第一天天的0点0分0秒

select TIMESTAMP(ADDDATE(SUBDATE(CURDATE(),WEEKDAY(curdate())),INTERVAL 1 week))

-- 下周第一天天的23点59分59秒

select TIMESTAMP(ADDDATE(SUBDATE(CURDATE(),WEEKDAY(curdate())),INTERVAL 1 week),'23:59:59')

-- 下周最后一天的0点0分0秒

select TIMESTAMP(ADDDATE(ADDDATE(curdate(),6-WEEKDAY(curdate())), INTERVAL 1 week))

-- 下周最后一天的23点59分59秒

select TIMESTAMP(ADDDATE(ADDDATE(curdate(),6-WEEKDAY(curdate())), INTERVAL 1 week),'23:59:59')

 

-- -------------------------------月:

 

-- 当月第一天的0点0分0秒
select TIMESTAMP(CURDATE()-day(curdate())+1)

-- 当月第一天的23点59分59秒
select TIMESTAMP(CURDATE()-day(curdate())+1,'23:59:59')

-- 当月最后一天的0点0分0秒
select TIMESTAMP(LAST_DAY(CURDATE()))

-- 当月最后一天的23点59分59秒
select TIMESTAMP(LAST_DAY(CURDATE()),'23:59:59')

-- 上月第一天的0点0分0秒
select TIMESTAMP(SUBDATE(CURDATE()-day(curdate())+1,INTERVAL 1 MONTH))

-- 上月第一天的23点59分59秒
select TIMESTAMP(SUBDATE(CURDATE()-day(curdate())+1,INTERVAL 1 MONTH),'23:59:59')

-- 上月最后一天的0点0分0秒
select TIMESTAMP(SUBDATE(LAST_DAY(CURDATE()),INTERVAL 1 MONTH))

-- 上月最后一天的23点59分59秒
select TIMESTAMP(SUBDATE(LAST_DAY(CURDATE()),INTERVAL 1 MONTH),'23:59:59')

-- 下月第一天的0点0分0秒
select TIMESTAMP(SUBDATE(CURDATE()-day(curdate())+1,INTERVAL -1 MONTH))

-- 下月第一天的23点59分59秒
select TIMESTAMP(SUBDATE(CURDATE()-day(curdate())+1,INTERVAL -1 MONTH),'23:59:59')

-- 下月最后一天的0点0分0秒
select TIMESTAMP(SUBDATE(LAST_DAY(CURDATE()),INTERVAL -1 MONTH))

-- 下月最后一天的23点59分59秒
select TIMESTAMP(SUBDATE(LAST_DAY(CURDATE()),INTERVAL -1 MONTH),'23:59:59')

 

-- ---------------------------------年:

-- 当年第一天的0点0分0秒
select TIMESTAMP(MAKEDATE(year(CURDATE()),1))

-- 当年第一天的23点59分59秒
select TIMESTAMP(MAKEDATE(year(CURDATE()),1),'23:59:59')

-- 当年最后一天的0点0分0秒
select TIMESTAMP(concat(year(CURDATE()),'1231'))

-- 当年最后一天的23点59分59秒
select TIMESTAMP(concat(year(CURDATE()),'1231'),'23:59:59')

-- 上年第一天的0点0分0秒
select TIMESTAMP(MAKEDATE(year(CURDATE())-1,1))

-- 当年第一天的23点59分59秒
select TIMESTAMP(MAKEDATE(year(CURDATE())-1,1),'23:59:59')

-- 上年最后一天的0点0分0秒
select TIMESTAMP(concat(year(CURDATE())-1,'1231'))

-- 当年最后一天的23点59分59秒
select TIMESTAMP(concat(year(CURDATE())-1,'1231'),'23:59:59')

-- 下年第一天的0点0分0秒
select TIMESTAMP(MAKEDATE(year(CURDATE())+1,1))

-- 下年第一天的23点59分59秒
select TIMESTAMP(MAKEDATE(year(CURDATE())+1,1),'23:59:59')

-- 下年最后一天的0点0分0秒
select TIMESTAMP(concat(year(CURDATE())+1,'1231'))

-- 下年最后一天的23点59分59秒
select TIMESTAMP(concat(year(CURDATE())+1,'1231'),'23:59:59')

 

上述写法都有很多种,基于MySQL自带的日期函数,就可以随意组合

MySQL日期相关函数-系统当前时间

MySQL日期 与字符串转换

MySQL日期取值与转换

MySQL日期增减计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值