2013-11-29 71 views
1

我正在使用MYSQL數據庫,並想知道這是一個很好的做法。出生日期保存到MYSQL DB的時間戳或日期列類型

方式1 - 在DB中使用列類型作爲時間戳。即將包含值如2012-11-13 00:00:00 方式2 - 使用列作爲日期。即在數據庫中將包含像2012-11-13這樣的值。

這裏的問題是,存儲DOB。我們是否真的需要時間戳作爲列類型?在我看來,DOB也不需要時間部分(00:00:00)。

它應該是時間戳,因爲我們可以將該值存儲爲隱藏狀態,因此即使有人看到數據庫時,也不會有人看到它。要查看,我們必須在php中使用strtotime()。

請讓我知道在數據庫中存儲DOB的正確方法。

+1

有V WE需要時間DOB罕見的情況下,通常是'date'類型是足夠的需求 –

+1

如果您需要只有**出生日期**而不是出生日期和時間**在您的應用程序中,那麼答案很明顯 - 使用'DATE'作爲數據類型。唯一不錯的做法是不使用帶時間部分的數據類型,因爲實際上並沒有使用它,因爲在大多數情況下,查詢**正確**與'timestamp' /'datetime'相比要棘手得多。 – peterm

+1

它真的取決於你的應用程序需要什麼。如果你的應用程序(前端)不關心'timestamp',那麼只用'date'作爲一個好的數據庫管理員,如果不需要時間,就儘量保留需要的數據,那麼爲什麼使用'時間戳' – Ashish

回答

6

我建議使用DATE。

TIMESTAMP的'1970-01-01 00:00:01'到'2038-01-19 03:14:07'(UTC)的範圍,所以在大多數情況下它不適合DOB。

可以使用DATETIME,但您應該問自己:您是否希望用戶填寫出生時間?如果沒有 - 使用DATE。

通常這不是什麼大不了的事,但你也可以考慮所需的存儲:

DATE:  3 bytes 
TIMESTAMP: 4 bytes 
DATETIME: 8 bytes 
+0

非常感謝... – dev1234