[英]MYSQL add 2 hours to time in Database when echo to PHP
我嘗試了多種方法來解決這個時區問題。 我有一個 MYSQL 數據庫,它以以下格式存儲時間。
2021-01-15 14:34:46
時間由遠程信息設備上傳,因此我無法控制加載到數據庫的時間
我需要從數據庫中添加兩個我們的時間並將其回顯到 PHP 頁面
我嘗試了以下方法:
SELECT * FROM gs_objects WHERE DATE_ADD(NOW(), INTERVAL 2 HOUR) > dt_tracker
AND imei = '358899053810647'
<td><?php echo $rows['dt_tracker']; ?></td>
時間保持不變,不增加兩個小時
和
SELECT CONCAT(DATE_FORMAT(dt_tracker, '%Y-%m-%d '),
DATE_FORMAT(DATE_ADD(dt_tracker, INTERVAL 2 HOUR), '%H:%m:%s'),
DATE_FORMAT(dt_tracker, '')) AS dt_format,
FROM gs_objects WHERE imei = '358899053810647'
<?php echo $rows['dt_format']; ?>
根本沒有 output
dt_tracker 是保存到數據庫的日期和時間DATATYPE是DATETIME
我需要在 output 時間上增加兩個小時。
2021-01-15 16:34:46
通過以下查詢解決:
SELECT CONCAT(DATE_FORMAT(dt_tracker, '%H:%i:%s '),
DATE_FORMAT(DATE_ADD(dt_tracker, INTERVAL 2 HOUR), '%H:%i:%s'),
DATE_FORMAT(dt_tracker, ' %p')) AS dt_tracker, imei FROM
gs_objects WHERE imei = '358899053064062'
你可以試試
SELECT * FROM gs_objects WHERE (NOW() + INTERVAL 2 HOUR) > dt_tracker
目前尚不清楚您想要什么。 如果您希望output值是日期偏移的(從您的標題看來),只需在查詢末尾添加具有相同字段名稱的日期偏移值:
SELECT *,
DATE_ADD(dt_tracker, INTERVAL 2 HOUR) AS dt_tracker
FROM gs_objects ...
<td><?php echo $rows['dt_tracker']; ?></td>
如果您想 select dt_tracker
值在距NOW()
一定距離之間的行 - 這是您的第二個示例 - 然后只需在WHERE
子句dt_tracker
替換為上述DATE_ADD
公式。
SELECT CONCAT(DATE_FORMAT(dt_tracker, '%H:%i:%s '),
DATE_FORMAT(DATE_ADD(dt_tracker, INTERVAL 2 HOUR), '%H:%i:%s'),
DATE_FORMAT(dt_tracker, ' %p')) AS dt_tracker, imei FROM
gs_objects WHERE imei = '358899053064062'
在我最初的查詢中,我將日期格式與時間格式相沖突
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.