MYSQL的日期处理函数

本文深入解析了SQL中处理日期的三个关键函数:to_days(), DATEDIFF(), 和 DATE_SUB()。通过具体示例,展示了如何利用这些函数查询特定日期范围内的数据,包括当天、昨天及未来或过去特定天数的数据。同时,强调了正确日期格式的重要性。

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

1. to_days()

to_days()函数返回一个年份0开始到参数时间的天数,可以使用这个函数处理很多问题

1⃣️ 查询当天的所有数据

SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());

2⃣️ 查询昨天的数据

SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) = 1

3⃣️ 查询未来第n天的数据

//当n为负数时,表示过去第n天的数据
SELECT * FROM 表名WHERE DATEDIFF(字段,NOW())=n

⚠️
日期的格式要为yyyy-mm-dd

2. DATEDIFF

DATEDIFF() 函数用于返回两个日期之间的天数。 语法:DATEDIFF(date1,date2) date1date2
参数是合法的日期或日期/时间表达式

1⃣️ 查询未来第n天的所有数据

//当n为负数时,表示过去第n天的数据
SELECT * FROM 表名WHERE DATEDIFF(字段,NOW())=n

3. DATE_SUB()

DATE_SUB() 函数从日期减去指定的时间间隔

DATE_SUB(date,INTERVAL expr type)
//type可以是
//MICROSECOND
//SECOND
//MINUTE
//HOUR
//DAY
//WEEK
//MONTH
//QUARTER
//YEAR
//SECOND_MICROSECOND
//MINUTE_MICROSECOND
//MINUTE_SECOND
//HOUR_MICROSECOND
//HOUR_SECOND
//HOUR_MINUTE
//DAY_MICROSECOND
//DAY_SECOND
//DAY_MINUTE
//DAY_HOUR
//YEAR_MONTH

date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔

SELECT OrderId,DATE_SUB(OrderDate,INTERVAL 5 DAY) AS SubtractDate
FROM Orders
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值