我知道這是常見問題,並已在此論壇上得到解答,但我的問題僅針對某種情況。 我存儲傳感器數據在數據庫表我應該使用時間戳還是日期時間傳感器數據
CREATE TABLE `sensordata` (
`userID` varchar(45) NOT NULL DEFAULT '',
`instrumentID` varchar(10) NOT NULL DEFAULT '',
`utcDateTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`localDateTime` datetime DEFAULT NULL,
`data` varchar(200) DEFAULT NULL,
PRIMARY KEY (`userID`,`instrumentID`,`utcDateTime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
localDateTime
列是多餘的,所以我想擺脫它,但我必須跟蹤的本地時間也因爲我們允許用戶更改的時區傳感器,這就是爲什麼我保持記錄數據的本地時間。我也想將utcDateTime
的數據類型更改爲timestamp
,以便我可以在SELECT查詢中執行時間轉換。例如,
If a sensor is recording in Sydney, one day the user changes its timezone to UTC, how will I know which data is for what time (if I use the current timezone of the sensor).
我應該堅持這個模式,還是應該創建另一個表來跟蹤時區變化並根據它來解析日期? 請諮詢,如果有更好的解決方案。 謝謝
如果已經UTC保存,又有什麼區別爲「本地時間」 - 你是指傳感器本地還是本地存儲它的服務器?我想你可以保存時區(沒有真正需要的日期)。向用戶顯示數據將是UTC到他們選擇的時區的轉換。 –
問題很明顯,我在談論傳感器的當地時間。 –