Mysql
為什麼我不能使用時間戳插入此值,但可以使用日期時間?
我想插入這個值:
2020-03-29 01:00:00
如果我設置一個名為
date
數據類型的列,datetime
我可以插入該值。但是,如果我使用數據類型timestamp
,我將無法插入並收到錯誤消息:不正確的日期時間值:第 1 行的列“日期”的“2020-03-29 01:00:00”
2020-03-29 02:00:00
此外,如果我使用數據類型插入timestamp
它可以工作……說真的,這裡發生了什麼?我使用的是 GMT 時區。我正在創建一個 2020 年日曆表,我想在其中插入一年中的每個小時。我應該跳過那個時間嗎?
這是因為夏令時的更改。您正在嘗試插入一個不存在的時間範圍,因此我們可以將其稱為夏令時間隙。
解決方案:只需跳過表格中的特定時間。
如果您想捕捉存在的每個小時,請擁有一個整數序列並執行
x + INTERVAL y HOUR
其中 x 是某個恆定的基準時間,y 是小時的序列。總和的結果是一個有效小時,根據 DST 小時、閏年等進行適當轉換。