2017-07-28 97 views
0

其中存儲日期和時間將爲這個數據段最快的搜索,如果我打算爲每個單獨的搜索方式的一種方式?我一直保存在日期時間類型,但也許它會更務實用於此目的的單獨的列(例如,日期和時間,數據庫類型)來存儲?在日期查詢單獨 -存儲日期和時間在軌道上的PostgreSQL紅寶石

+0

不直接解決您的問題,但[this](https://stackoverflow.com/a/15350965/6611487)看起來很好 –

回答

0

我沒有運行任何基準,但我只看到保存爲不同的列,如果你正在做大量的規劃需要 - 我的意思是巨大的。

timestamp (with time zone) 8 bytes both date and time, with time zone 
date      4 bytes date (no time of day) 
time (without time zone) 8 bytes time of day (no date) 
time (with time zone)  12 bytes times of day only, with time zone 

所以,如果你分開存放,它如果你把時區的time場至少需要更多+ 4字節,或+8。

如果你要有大量的查詢行,你只需要查詢Date那麼它可能是有意義的,否則我不這麼認爲(實際上它可能仍然沒有意義因爲有大量的行,它也會使用更多不必要的空間,可能會抵消任何感知的優勢)。

我用較Datesinteger場(向上「直到幾個月 - 例如,201704爲指數),而是因爲記錄是體現出獨特的月度記錄,它是有道理的,也沒有日期的格式只反映年+月,否則PG是已經非常適合處理日期時間戳情況。

+0

Rails中的datetime和timestamp遷移類型都映射到PostgreSQL的帶有時區的TIMESTAMP數據類型,對嗎? – Anna

+0

我不這麼認爲,我認爲你需要照顧保存正確。這可以幫助你計算出來:http://rpanachi.com/2016/07/04/ruby-is-time-to-talk-about-timezones –