Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL-仅当列与当前时间相等时才选择行_Php_Sql_Datetime - Fatal编程技术网

Php SQL-仅当列与当前时间相等时才选择行

Php SQL-仅当列与当前时间相等时才选择行,php,sql,datetime,Php,Sql,Datetime,我有一个PHP脚本,只有当B列的datetime与当前时间相等时,才会显示a列的值 Column A | Column B ------------------------------ House | 2013-06-28 12:47:30 Dog | 2013-06-28 12:47:52 Forrest | 2013-06-30 14:54:12 在我们的例子中,如果当前时间是2013-06-28 12:47:44,那么脚本应该显示House and Dog 我的想法是,

我有一个PHP脚本,只有当B列的datetime与当前时间相等时,才会显示a列的值

Column A | Column B
------------------------------
House    | 2013-06-28 12:47:30
Dog      | 2013-06-28 12:47:52
Forrest  | 2013-06-30 14:54:12
在我们的例子中,如果当前时间是2013-06-28 12:47:44,那么脚本应该显示House and Dog

我的想法是,只有当B列与当前年份月日小时分钟(而不是秒)相同时,我才应该得到该行

我尝试了DATE_SUB(CURTIME()-59),但它不起作用。。。我怎样才能只使用SQL呢?

试试这个

SELECT * FROM table_name
WHERE STR_TO_DATE(column_b, '%Y-%m-%d %H:%i') = STR_TO_DATE(now(), '%Y-%m-%d %H:%i')
SELECT * FROM table_name
WHERE DATE_FORMAT(column_b, '%Y-%m-%d %H:%i') = DATE_FORMAT(now(), '%Y-%m-%d %H:%i')
试试这个

SELECT * FROM table_name
WHERE STR_TO_DATE(column_b, '%Y-%m-%d %H:%i') = STR_TO_DATE(now(), '%Y-%m-%d %H:%i')
SELECT * FROM table_name
WHERE DATE_FORMAT(column_b, '%Y-%m-%d %H:%i') = DATE_FORMAT(now(), '%Y-%m-%d %H:%i')
  • 阅读有关日期格式()的更多信息。

b列的类型是什么?Varchar还是datetime?谢谢你,Yogesh,你的SQL是最好的选择。只有一个提示:在一个小时内应该是“%H”而不是“%H”。你看到@Yogesh的答案了吗?你看到我使用了不同的函数了吗?我看到你用
%H
而不是
%H
犯了同样的错误