看板 PHP 關於我們 聯絡資訊
換個標題好了,原標題: [請益] 04跟4會不會有差? 私認為這算是不錯,而且值得討論的議題。 (如果板主覺得這篇放這個板不妥的話,麻請來信警告一下,我會揮刀自 D...) 因為個人習慣的關係,我近來很喜歡在 MySQL 放 DATETIME。 我寫過這幾篇跟 MySQL 的時間欄位有關的文章: * 在 MySQL 中處理時間資料 http://www.joehorn.idv.tw/archives/2008/01/13/268/ * 用 MySQL 處理時間資料所應該注意的事 http://www.joehorn.idv.tw/archives/2008/03/19/282/ * [MySQL] 處理 weekday 欄位 http://www.joehorn.idv.tw/archives/2010/04/01/791/ 以下沒有批評的意思,純粹是作看法與觀點的交換。
knives:unix timestamp +1,之後想再改輸出格式或運算比較都很方便09/26 11:35
針對這個,其實 MySQL 有 UNIX_TIMESTAMP() 這個 function 可以轉換。 可能有人覺得「放 DATETIME 就必須轉換;放 UNIXTIMESTAMP 不必轉」。 但... 人類進行資料查詢時,直接看 DATETIME,一目了然; 程式需要 UNIXTIMESTAMP,再進行轉換,讓程式用就好了,是吧?
Kelunyang:而且我最近發現time stamp可以跨越時區,不知道有沒有09/26 13:41
Kelunyang:哪位有跨國主機可以幫忙測試一下09/26 13:41
放 DATETIME 的另外一個好處是可以在 INSERT 與 UPDATE 時直接用 NOW(), 時間值的時區則是以 MySQL server 的設定為準。 跨國執行的程式取出 MySQL server 的時間跟自己的主機作比對之後, 也可以知道時區差異。
Kelunyang:存成unix time只要int 4byte而以ㄟXD09/26 23:00
KC73:一個 datetime 19 個 bytes,大概 6 到 10 個中文字。09/27 02:53
以前大家很重視這個,因為記憶體跟磁碟空間的單位成本很高;現在...? 要計較 UNIXTIMESTAMP 跟 DATETIME 的容量差異的話, 一堆 BIGINT、VARCHAR(255)、TEXT 好像應該先被拖出來鞭一頓? XD 話說,我也看到很少有人把 AUTO_INCREMENT 欄位放 UNSIGNED 啊。 -- ╥╥╖╓─╥╖ ╓─╥╖╓╖ ╓─╥╖ ╓─╥╖ ╓╖╓╖ ╟╢ ╟╢ ╙╜ ╟╢╟╢ ╟╢ ║║╟╢ ╟╢ ╟╢ ╟─ ╟─╫╢ ╟╢ ╟─╫╜ ║║╟╢ ╟╢ ╟╢ ╓╖ ╟╢╟╢ ║║╟╢ ╨╜ ╙─╨╜ ╙─╨╜ ╙╜ ╙─╨╜╙╜ ╙╙╨╜ 獅子男 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.139.80
JoeHorn:也許 DATETIME 有我沒看到的缺點,麻煩諸位大德給予指教。 09/28 23:26
※ 編輯: JoeHorn 來自: 114.37.139.80 (09/28 23:27)
alpe:postgresql用久了,回來看mysql他的時間處理真的太基本了 09/28 23:29
JoeHorn:基本的意思是? 比上不足、比下有餘啊..(看看 Oracle) 09/28 23:45
shadowjohn:既然討論 datetime 了~可以再補充一個 date_format 09/29 06:16
shadowjohn:像K大用int存,其實也不錯~他指出容量的差別~ 09/29 06:17
shadowjohn:select date_format(FROM_UNIXTIME(`foo`),'%Y%m%d') 09/29 06:18
shadowjohn:不過我個人也是比較習實用datetime就是了~ 09/29 06:19
appleboy46:phpBB 儲存的方式就是以 int 方式去存 09/29 10:30
Kelunyang:用int存實作compare的時候搜尋速度應該也比string這些 09/30 12:52
Kelunyang:快吧@@? 09/30 12:53
Kelunyang:喔對我是真的有設定過時區,結果發現PHP的TIME()拿到的 09/30 12:53
Kelunyang:都是同一個值,轉換之後也正常 09/30 12:53
Kelunyang:不過我那時候只是好玩試試看,所以也不是很確定對不對@@ 09/30 12:54