MySQL获取昨天日期以及与数据的日期进行比较

本文介绍了如何在MySQL中获取昨天的日期,并展示了如何将获取的日期与数据库中的日期进行比较,以解决面试中遇到的问题。通过使用内置函数如CurDate()和INTERAVL,可以方便地进行日期操作。示例SQL语句用于查询昨天有上传文件的user_id。

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

昨天面试的时候让我写一个sql,我没有写出来。在这里我就不把题目贴出来了。我写SQL的困难在于不知道MySQL的有关日期的内置函数,所以当时就写不出来。在网上搜了点资料,感觉大家都只说了如何获取日期,却没有涉及到与数据库中的数据日期进行比较的阶段。所以我在这里把它贴出来,希望能对大家有帮助。

获取昨天的日期

主要是用了MySQL的内置函数
DATE_ADD(date,INTERVAL expr unit)
参数date是指限定的日期。可以手动设置日期,例如‘20200725’;也可以用函数CurDate()动态获取现在的日期。
INTERAVL可能是一个间隙?在实际使用中好像没什么用。如果大家有谁知道这个关键字有什么用的话可以告诉我吗?
expr是一个表达式,如果只是一个单独的数字,那么就是指定日期相加上这个数值;如果是以‘-’开头,则是在指定日期上减去这个数值。
unit则是单位。指定先前expr的单位。可用项有:day、week、month和year。
利用这个函数我们就可以获取到与指定日期相距指定时间的日期时间。

当然DATE_SUB(date,INTERVAL expr unit)也是可以实现相同的功能。之前提到的add默认是相加,而sub则默认是相减。

如果要获取到昨天的日期的话,可以这样写

DATE_ADD(CURDATE(),INTERVAL -1 day)

数据日期的比较

我们现在已经获取到了昨天的日期,现在要做的就是要把获取到的时间与数据库的时间进行一个比较。
因为数据库的相关的时间数据的默认值是当前时间,所以的话数据里的时间是这样的2020-07-24 15:22:03。我们需要从这个表达式中提取出日期。
利用MySQL的内置函数Date(date)就能实现了。把数据库的时间传入这个函数,就能得到对应的日期。

举一个例子吧。
这个是我的表结构,表名为cloud_file
在这里插入图片描述
我要获取到昨天上传过文件的user_id,对应的sql语句如下:

select user_id from cloud_file where DATE_ADD(CURDATE(),INTERVAL -1 day) = DATE(upload_time);

在这里插入图片描述

执行结果返回符合预期。
在这里插入图片描述

当然MySQL还有许多有关时间的内置函数,还是需要进一步学习的啊。
可以去看看这个网站w3cSchool中有关时间的函数。
欢迎一起学习讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值