我一直在尝试根据指定日期提取记录。在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 ";
答案 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 ";