[英]Date search Sql Query
我將時間戳存儲在(INT)列中的mysql數據庫中,並且我想搜索日期之間的行。 任何人都將幫助Sql查詢來查找兩個日期之間的行嗎?
輸入的日期如下
FROM DATE = 15-10-2011
END DATE = 01-11-2011
這取決於您使用哪種算法將日期字符串轉換為int
值。
例如,如果算法是運動的:如果將一天(例如15-10-2011
)轉換為n
(例如5037
),則第二天( 16-10-2011
)始終轉換為n+1
(所以5038
在這個例子中。)
那么您可以使用:
WHERE IntField BETWEEN MySpecialConvertDateToIntFunction('15-10-2011')
AND MySpecialConvertDateToIntFunction('01-11-2011')
如果您的字段將不同的timsetamps存儲為不同的整數(並且轉換是單調的),則可以將上面的代碼稍微更改為:
WHERE IntField >= MySpecial...Function('15-10-2011')
AND IntField < MySpecial...Function('02-11-2011') --- notice the date+1
但是通常最好使用MySQL DATE
類型的字段來存儲日期。 除非您要存儲日期在課程結束前1000
或之后9999
。
如果要存儲時間戳,則還有TIMESTAMP
類型。 閱讀
MySQL文檔:DATETIME,DATE和TIMESTAMP類型
您可以使用BETWEEN
運算符,該運算符在兩個值之間選擇一個數據范圍。 值可以是數字,文本或日期。
您可以在此處看到:
http://w3schools.com/sql/sql_between.asp
我會要求您將數據類型設置為timestamp / datestamp,然后
//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'
能否使用mysql FROM_UNIXTIME 函數dev.mysql.com-函數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'));
我在輸入日期時犯了一個錯誤,但已解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.