2011-08-09 87 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:不,它是等效的變換。你看,那些高中數學課有其目的。 –