Mysql

為什麼我不能使用時間戳插入此值,但可以使用日期時間?

  • December 6, 2019

我想插入這個值: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 小時、閏年等進行適當轉換。

引用自:https://dba.stackexchange.com/questions/254901