我在MySQL数据库中有一个关系,它以varchar的形式存储日期以及其他属性。它看起来像这样:
Answers answerId answer questionId date
我有一个web应用程序,其中用户将选择“从”和“到”日期,我将需要在提供的范围之间拉取相关答案。所以我的问题是,我如何实现一个php文件,它可以正确地查询数据库,提取所提供的日期之间的答案。
发布于 2011-08-21 23:45:13
如果date是YY-mm-dd格式(从最大到最低,带有前导零),则可以将其作为字符串进行比较(按字典顺序)
但是您应该对日期使用适当的数据类型(DATE、DATETIME、TIMESTAMP)
发布于 2011-08-21 23:59:58
这里有一个简单的解决方案:
您可以将日期(已存储在MySQL数据库中)转换为Unix time,并像比较任何数字一样对其进行比较。
e.g
$date1 = strtotime("2010-11-12");
$date2 = strtotime("2010-11-14"); 只需比较一下$date1和$date2。
发布于 2011-08-22 00:00:21
正如@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;https://stackoverflow.com/questions/7139235
复制相似问题