→ 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