im將時間戳存儲在(INT)列中的mysql數據庫中,並且我想在日期之間搜索行。任何人都可以幫助什麼應該是Sql查詢來查找兩個日期之間的行?日期搜索Sql查詢
日期被輸入像
FROM DATE = 15-10-2011
END DATE = 01-11-2011
im將時間戳存儲在(INT)列中的mysql數據庫中,並且我想在日期之間搜索行。任何人都可以幫助什麼應該是Sql查詢來查找兩個日期之間的行?日期搜索Sql查詢
日期被輸入像
FROM DATE = 15-10-2011
END DATE = 01-11-2011
可以使用BETWEEN
操作,其選擇的範圍內的兩個值之間的數據。這些值可以是數字,文本或日期。
它被認爲是不好的方式在連接t0 w3schools,因爲他們的手冊是越野車和過時的stackoverflow。 –
不好意思。我不會再使用它。 – tucnak
請參閱http://w3fools.com/ – 2012-01-10 16:46:44
我想請您設置的數據類型爲時間戳/日期戳&然後
//php code
$date1=date ('Y-m-d' , strtotime ("15-10-2011"));
$date2=date ('Y-m-d' , strtotime ("01-11-2011"));
//sql code
SELECT * FROM tbl_mytbl WHERE DATE(attr_date) <'$date2' AND DATE(attr_date) >'$date1'
這取決於你用什麼算法將日期字符串轉換爲值爲int
。
如果algoritm是mototonic,例如:如果一天(比如說15-10-2011
)轉化爲n
(比如說5037
),然後第二天(16-10-2011
)總是被轉換到n+1
(所以5038
在這個例子中)。
,那麼你可以只使用:
WHERE IntField BETWEEN MySpecialConvertDateToIntFunction('15-10-2011')
AND MySpecialConvertDateToIntFunction('01-11-2011')
如果你的字段存儲不同timsetamps爲不同的整數(和轉換是單調的),你合ULD稍微改變上面的代碼:
WHERE IntField >= MySpecial...Function('15-10-2011')
AND IntField < MySpecial...Function('02-11-2011') --- notice the date+1
但通常最好使用MySQL DATE
類型的字段存儲日期。除非您想要在1000
之前或9999
之外存儲日期。
如果要存儲時間戳,還有TIMESTAMP
類型。閱讀
MySQL docs: DATETIME, DATE, and TIMESTAMP Types
你可以使用mysql FROM_UNIXTIME功能dev.mysql.com - function from_unixtime
SELECT *
FROM 'table'
WHERE FROM_UNIXTIME(intTimestamp)
BETWEEN
date ('Y-m-d' , strtotime ('15-10-2011'))
AND ('Y-m-d' , strtotime ('01-11-2011'));
我現在已經把日期輸入錯誤,但有固定的。
這是不夠的信息...你怎麼從日期轉換爲整數?這些Julian約會? – Yahia
所以,你問如何將你的數據轉換成時間戳或什麼? –