2011-08-09 61 views
1

我在想,如果我可以在我的SQL语句比较两个intergers。 我有一个日期字段,保存为unixtimestamp。我想找到那些日期字段在两个值之间的记录。 像这样:MySQL的比较intergers

Select ... From ... WHERE (dateField + myNumber) Between (x) And (y) 

其中mynumber的是从一个循环函数的变量。

是这样的可能吗?

编辑: mynumber的始终是一个正数,超过的DateField值

什么,我要做的是创建一个能在将来的某个时候再发生的事件列表更大。 我有我的表中记录的事件的一些记录。我运行查询来查找这些事件将来何时再次发生。

比方说,我有10所记录的是发生在2011年3月,我需要创建的这10条记录必须在三月份再次出现一个列表,2012年

这就是为什么我认为逻辑: saved_date] + [1年时间] [2012年3月1日] 2012年[03月31日]之间

这似乎很简单,因为我的日期存储为UNIX时间戳。

+0

波希米亚是对的不要修改现场,你可能会对它的索引,如果你修改你的索引将不会被使用 – cristian

+1

究竟什么是你的问题?你发布了一个有效的SQL(虽然看到波希米亚的答案是如何使它更有效),所以我没有看到你的问题。 –

回答

3

我会倾向于修改字段,而是修改范围值,所以你仍然可以使用索引(如果存在的话):

Select ... From ... WHERE dateField Between x - myNumber And y - myNumber 
+0

如果'myNumber'是负数,会导致问题吗? – ajreal

+0

@ajureal - 当然。减去负数可能会破坏时空连续。 –

+0

@ajreal:不,它是等效的变换。你看,那些高中数学课有其目的。 –