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
所以,你问如何将你的数据转换成时间戳或什么? –