Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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 MySQL选择过去的时钟小时_Php_Mysql_Sql_Database - Fatal编程技术网

Php MySQL选择过去的时钟小时

Php MySQL选择过去的时钟小时,php,mysql,sql,database,Php,Mysql,Sql,Database,我将如何选择最后一个时钟小时。例如,如果是3:30,我将如何选择3点钟的时间?我知道如何从运行查询时算起的最后一个小时,但我不知道如何执行此操作。在WHERE子句中尝试以下操作: WHERE DATE(columnname) = DATE(CURRENT_TIMESTAMP) AND HOUR(columnname) = HOUR(CURRENT_TIMESTAMP) 参考文献 这是约翰·康德答案的变体。它可能运行得更快,因为它没有在where子句中使用函数。语法可能不正确,因为我不使

我将如何选择最后一个时钟小时。例如,如果是3:30,我将如何选择3点钟的时间?我知道如何从运行查询时算起的最后一个小时,但我不知道如何执行此操作。

在WHERE子句中尝试以下操作:

 WHERE DATE(columnname) = DATE(CURRENT_TIMESTAMP)
   AND HOUR(columnname) = HOUR(CURRENT_TIMESTAMP)
参考文献


这是约翰·康德答案的变体。它可能运行得更快,因为它没有在where子句中使用函数。语法可能不正确,因为我不使用mysql,正在使用google查找语法

where yourdatetimefield >= timestampadd(minute, 
, -minute(current_timestamp), current_timestamp)

为了获得最佳性能,您希望在裸列上使用谓词,而不是像所选答案中那样在函数中包装列引用

要将返回的行限制为仅在当前时钟小时内具有mydatetimecol值的行,请执行以下操作:

 WHERE mydatetimecol >= DATE_FORMAT(NOW(),'%Y-%m-%d %H:00:00')
右侧的表达式是向下舍入到小时的当前日期时间值。在本例中,这是通过将当前日期时间的分钟和秒部分格式化为零来完成的。这不是唯一的方法,但是这种方法比其他方法更容易阅读


请注意,不需要在函数中包装列引用。在谓词中使用mydatetimecol的裸列引用使MySQL能够对mydatetimecol使用索引范围扫描。

在php或MySQL中,数据从何处来,变量表列?-第一个。你试过了吗?…从现在开始选择EXTRACTHOUR它试过下面的答案,但我从这一小时得到了行,但是另一天。WHERE HOURTS=HOURCURRENT\u TIMESTAMP因此,如果带有时间戳的列被称为“TS”,它应该是这样的:WHERE HOURTS=HOURCURRENT\u TIMESTAMP?是的,这是正确的,我从这个小时获得结果,但返回的日期不同。我怎样才能解决这个问题?您需要对WHERE语句进行一些改进。我对答案所做的改变应该可以做到这一点。