如何获取在45天内过期的数据..?

时间:2011-05-18 09:31:21

标签: sql

全部,

我有一个sql表,该表的字段是

id
name
expireydate

现在我只想要那些在45天或30天内过期的记录。

如何处理sql查询。 我用SQL没有更多的exp。

提前致谢,

3 个答案:

答案 0 :(得分:1)

如果您使用的是mysql,请尝试DATEDIFF

持续45天

select * from `table` where DATEDIFF(now(),expireydate)<=45;

30天

select * from `table` where DATEDIFF(now(),expireydate)<=30;

在oracle -中,我会使用dateiff而不是SYSDATE代替now()。[不确定]


在sql server中,DateDiff完全不同,你必须提供从2个日期中取出差异的单位。

DATEDIFF(datepart,startdate,enddate)

获取当前日期,请尝试以下操作之一:CURRENT_TIMESTAMPGETDATE(){fn NOW()}

答案 1 :(得分:0)

您可以使用简单的SELECT * FROM yourtable WHERE expireydate < "some formula calculating today+30 or 45 days"

简单比较将在那里工作,棘手的部分是写下你要比较的日期的最后一位。这取决于您的环境以及您如何在数据库中存储“expireydate”。

答案 2 :(得分:0)

尝试下面的内容: -

 SELECT * FROM MYTABLE WHERE (expireydate in days) < ((CURRENTDATE in days)+ 45)

不要直接执行!根据您的数据库,获取日期的方式将有所不同。请查看您的数据库手册或请准确了解您的数据库。