【发布时间】:2015-01-12 20:18:21
【问题描述】:
我要做的唯一事情是显示自用户上次访问他的统计信息仪表板以来的新交易量,我以为我很好地理解了这个概念,但似乎我遇到了一个问题。
这个问题是用户拥有的current-date和SQL使用的current-timestamp不是一回事。 (我会假设这会因时区而异?)
我想我正在寻找的是什么 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;
}
如果我将 > 换成
【问题讨论】: