比较从MySql数据库中拉出的字符串日期

时间:2011-08-21 15:38:34

标签: php mysql html sql database

我在MySQL数据库中有一个关系,它以varchar的形式存储日期以及其他属性。它看起来像:

答案 answerId 回答 questionId 日期

我有一个网络应用程序,用户将选择“从”和“到”日期,我需要在提供的范围之间提取相关答案。所以我的问题是我如何实现一个php文件,它正确地查询了数据库,提取了所提供日期之间的答案..

3 个答案:

答案 0 :(得分:1)

如果您的日期在YY-mm-dd(从最大到最低,带有前导零),您可以将其比较为字符串(按字典顺序排列)

但是你应该使用适当的数据类型来表示日期(DATEDATETIMETIMESTAMP

答案 1 :(得分:1)

以下是一个简单的解决方案:

您可以将日期(已存储在MySQL数据库中)转换为Unix time,并将其与任何数字进行比较。

例如

$date1 =  strtotime("2010-11-12");  
$date2 =  strtotime("2010-11-14");  

只需比较$date1$date2

这是可以帮助您的链接 http://php.net/manual/en/function.strtotime.php

答案 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;