我有一个叫做温度的mysql表
我的一个属性叫做“now”,它显示服务器上的时间戳。
架构:
now (current_time), id (auto increment), temp (varchar 50)
now属性示例
2018-06-07 11:19:46
2018-06-08 02:06:12
我没有权限更改服务器上的时间。
在读取now值后,如何将5.5小时添加到now?
我现在要读的代码
$sql = "SELECT id, now, temp FROM temperature";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Time: " . $row["now"]. " . - Temperature: ". $row["temp"]. "<br>";
}
} else {
echo "no data";
}
这可能吗?我可以在回音前加5.5小时吗?
3条答案
按热度按时间gmol16391#
您可以在查询中使用mysql的addtime函数。
wtlkbnrh2#
看看这个使用strtotime和date函数的示例代码,在回显示例之前添加:
ecfsfe2w3#
看起来你的问题涉及到印度国家时区(+5:30)。zoneinfo数据库中的时区名称是
Asia/Kolkata
.我猜从你的问题,你正在试图转换时间从世界时协调(utc)到印度时间。
重要的是你的
now
属性作为DATETIME
或者TIMESTAMP
列。你的问题没有提供足够的信息让我们知道这一点;这两种数据类型都使用文本字符串呈现,例如2018-07-08 13:31:20
.如果你的
now
属性是TIMESTAMP
你的处境很好。为什么?mysql存储TIMESTAMP
参考世界时协调的值。因此,您只需设置mysql连接的时区,然后执行select查询,通过依次运行这两个查询,并分别调用query()
方法。mysql将转换您的
now
印度时间的价值观。如果你的
now
列具有DATETIME
数据类型,表示表中的数据存储时不引用任何时区。在这种情况下,您可以使用此查询将这些值从utc转换为印度时间。为了使用mysql的时区支持,您可能需要填充服务器的时区表。请告诉服务器管理员这样做,或者查看此页以获取说明。https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html