PHP和MYSQL根据日期查找记录

时间:2016-08-08 17:59:47

标签: php mysql date

我一直在尝试根据指定日期提取记录。在DB中我有一个列存储unix时间戳的列。用户可以选择基于日期选择记录。用户输入:08/08/2016(例如)

我如何编写我的SQL语句来处理它?<​​/ p>

$query .= "`".$o."` = '".date("Y-m-d",strtotime($v))."' AND ";

这里我们看到构建SQL语句部分的行,因为用户在搜索请求期间可以定位多个列。

不知何故,我需要能够将$o(这是一个存储unix时间戳的列)转换为Y-m-d格式进行比较,如上所示,并使其在SQL语句中工作。

任何帮助都将不胜感激。

修改

这对我有用:

$query .= "&#34; $ O&#34; >= '".strtotime($v)."' AND&#34; $ O&#34; < '".(strtotime($v)+(24*60*60))."' AND ";

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

"WHERE DATE(`$o`) = '".date("Y-m-d",strtotime($v))."'"

但是这不会使用索引,所以如果你有一个大表,它会更慢。如果您希望能够使用索引,您可以这样做:

"WHERE `$o` >= ".date("Y-m-d",strtotime($v))."
  AND `$o` < ".date("Y-m-d",strtotime($v))." + INTERVAL 1 DAY"

答案 1 :(得分:0)

您也可以尝试这种方法并在MySQL上使用UNIX_TIMESTAMP。

$v = '2016-08-04';
$query .= "'".$o."' = UNIX_TIMESTAMP('$v') AND ";