我在MySQL数据库中有一个关系,它以varchar的形式存储日期以及其他属性。它看起来像:
答案 answerId 回答 questionId 日期
我有一个网络应用程序,用户将选择“从”和“到”日期,我需要在提供的范围之间提取相关答案。所以我的问题是我如何实现一个php文件,它正确地查询了数据库,提取了所提供日期之间的答案..
答案 0 :(得分:1)
如果您的日期在YY-mm-dd
(从最大到最低,带有前导零),您可以将其比较为字符串(按字典顺序排列)
但是你应该使用适当的数据类型来表示日期(DATE
,DATETIME
,TIMESTAMP
)
答案 1 :(得分:1)
以下是一个简单的解决方案:
您可以将日期(已存储在MySQL数据库中)转换为Unix time,并将其与任何数字进行比较。
例如
$date1 = strtotime("2010-11-12");
$date2 = strtotime("2010-11-14");
只需比较$date1
和$date2
。
答案 2 :(得分:1)
正如@RiaD所写,你使用正确的日期类型。但如果你不能改变类型,你应该 使用 STR_TO_DATE 将Varchar字符串转换为DATETIME。
请参阅http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date
所以你的查询看起来像
Select * from table
where STR_TO_DATE(field_name, 'YOUR_DATE_FORMAT') between start_date and end_date;