我唯一留给我的任务是显示自用户上次访问他的统计信息面板以来的新交易量,我认为我很好地理解了这个概念,但似乎我遇到了一个问题。
这个问题是用户拥有的当前日期和 SQL 使用的当前时间戳不是一个。 (我假设这会因时区而异?)
我想我正在寻找的是 time=zone MySQL 存储 DATETIME(当前时间戳)字段的位置,因此我可以获得用户的当前时间戳、他的时区,并尝试执行逻辑使它们相同。
或者有更简单的方法解决这个问题吗?我目前在我的仪表板中使用 DATETIME 格式来显示有关购买日期的信息,其格式如下表内的 2015-01-12 01:02:18。
也许我的查询是错误的,谁知道呢:
function getNewTransactions($connection, $user) {
$statement = $connection->prepare("SELECT `lastcheck` FROM `login` WHERE 1");
$statement->execute();
while($row = $statement->fetch()) {
$d = $row['lastcheck'];
}
$statement = $connection->prepare("SELECT * FROM `transactions` WHERE `date` > :d");
$statement->bindParam(":d", $d);
$statement->execute();
$transactions = 0;
while($row = $statement->fetch()) {
$transactions++;
}
$date = date("Y-m-d H:i:s");
$statement = $connection->prepare("UPDATE `login` SET `lastcheck` = '{$date}' WHERE `username`=:name");
$statement->bindParam(":name", $user);
$statement->execute();
return $transactions;
}
如果我将 > 换成 <,它确实会显示较旧的交易,但它们会关闭几个小时。
最佳答案
关于php - 获取表中的行数时出现问题,其中日期大于值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910070/