簡體   English   中英

MYSQL 回顯到 PHP 時在數據庫中增加 2 小時

[英]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 是保存到數據庫的日期和時間DATATYPEDATETIME

我需要在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM