2016-06-22 88 views
1

使用SQLite進行測試時,Django會在保存到數據庫時自動將字符串轉換爲日期時間,但會在無錯誤的情況下放棄無效字符串的更新。這種行爲在所有Django數據庫後端是否一致?這在哪裏記錄?另外,如何確定從外部源(而非Django表單)接收到的字符串形式的日期時間是否對Django的數據庫有效?Django自動將字符串自動轉換爲日期時間

縱觀代碼,django.utils.dateparse.parse_datetime似乎是Django在其SQLite數據庫後端中使用的。其他數據庫後端似乎不使用此功能,也不會與Django窗體使用的DATETIME_INPUT_FORMATS進行交互。

回答

2

SQLite沒有專門用於存儲日期 和/或時間的存儲類。取而代之的是,SQLite的 的內置日期和時間函數能夠存儲日期和時間爲TEXT,REAL或INTEGER 值

https://www.sqlite.org/datatype3.html#section_2_2

的因此這種行爲是從PostgreSQL和MySQL非常不同這兩者恰好具有日期,時間和日期時間的單獨數據類型。

因此,答案爲「這種行爲在所有Django的後端數據庫保持一致?」沒有

這哪裏是記錄?」是指上面的鏈接

此外,該怎麼辦我確定從外部源(而不是Django表單)收到的字符串形式的日期時間是否對Django的數據庫有效?「這取決於。如果您在外部來源收到特定日期和時間時遇到問題,我會建議一個單獨的問題。

相關問題