如果我有一個DATETIME列的表,我可以插入具有類似格式的日期:MySQL和日期時間
2015-03-25 10:10:10
2015-03-25 10:10
2015-03-25 10
2015-03-25
它將在與零餘繼續進行。我不能使用
2015-03
2015
因爲它會給'不正確的日期時間值'錯誤。然而,有可能在SELECT中使用這最後兩個,如[..] WHERE timestamp < '2015-03'
..
如果在datetimes中省略或者我有沒有辦法讓MySQL在月份和日期中填充01-01的其餘日期時間自己手動做到這一點?
I.e.我想在INSERT語句中使用 '2015-03',或做類似SELECT DATE_FORMAT('2015-03', '%Y%m%dT%H%i%S')
附錄:那不完整格式「支持」,在這個問題給出了'WHERE'條款的例子是,因爲這些文字被解析的原因作爲單純的字符串;並且根據數據庫連接的核對按字典順序執行比較。雖然它不是時間類型的真正比較(並且由於時間列上的索引不能被使用而不是可靠的),但它發生(由於MySQL的日期時間格式的佈局),這樣的字典順序產生與真正的時間類型相同的結果。 – eggyal 2015-03-25 11:36:54
謝謝。我期望'使用'這些時間戳的唯一原因是因爲MySQL首先不會錯(全部)它們。我希望不必編寫能夠將「2015-03」這樣的正確的ISO8601轉換爲MySQL DATETIME格式但可惜的東西。 – Lieuwe 2015-03-25 11:46:37
@Lieuwe:這樣做的代碼通常已經存在於數據訪問層 - 所以除非你自己寫(不建議考慮到已經提供了這種功能的大量優秀的庫),你真的不應該擺脫這種低級的實施細節。 – eggyal 2015-03-25 12:19:01