[討論] PHP 在 MySQL 用 UNIXTIMESTAMP 與 DAT …

看板PHP作者 (每天都在公司玩OLG)時間15年前 (2010/09/28 23:19), 編輯推噓3(3010)
留言13則, 5人參與, 最新討論串1/3 (看更多)
換個標題好了,原標題: [請益] 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/ 以下沒有批評的意思,純粹是作看法與觀點的交換。

09/26 11:35,
unix timestamp +1,之後想再改輸出格式或運算比較都很方便
09/26 11:35
針對這個,其實 MySQL 有 UNIX_TIMESTAMP() 這個 function 可以轉換。 可能有人覺得「放 DATETIME 就必須轉換;放 UNIXTIMESTAMP 不必轉」。 但... 人類進行資料查詢時,直接看 DATETIME,一目了然; 程式需要 UNIXTIMESTAMP,再進行轉換,讓程式用就好了,是吧?

09/26 13:41,
而且我最近發現time stamp可以跨越時區,不知道有沒有
09/26 13:41

09/26 13:41,
哪位有跨國主機可以幫忙測試一下
09/26 13:41
放 DATETIME 的另外一個好處是可以在 INSERT 與 UPDATE 時直接用 NOW(), 時間值的時區則是以 MySQL server 的設定為準。 跨國執行的程式取出 MySQL server 的時間跟自己的主機作比對之後, 也可以知道時區差異。

09/26 23:00,
存成unix time只要int 4byte而以ㄟXD
09/26 23:00

09/27 02:53,
一個 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

09/28 23:26, , 1F
也許 DATETIME 有我沒看到的缺點,麻煩諸位大德給予指教。
09/28 23:26, 1F
※ 編輯: JoeHorn 來自: 114.37.139.80 (09/28 23:27)

09/28 23:29, , 2F
postgresql用久了,回來看mysql他的時間處理真的太基本了
09/28 23:29, 2F

09/28 23:45, , 3F
基本的意思是? 比上不足、比下有餘啊..(看看 Oracle)
09/28 23:45, 3F

09/29 06:16, , 4F
既然討論 datetime 了~可以再補充一個 date_format
09/29 06:16, 4F

09/29 06:17, , 5F
像K大用int存,其實也不錯~他指出容量的差別~
09/29 06:17, 5F

09/29 06:18, , 6F
select date_format(FROM_UNIXTIME(`foo`),'%Y%m%d')
09/29 06:18, 6F

09/29 06:19, , 7F
不過我個人也是比較習實用datetime就是了~
09/29 06:19, 7F

09/29 10:30, , 8F
phpBB 儲存的方式就是以 int 方式去存
09/29 10:30, 8F

09/30 12:52, , 9F
用int存實作compare的時候搜尋速度應該也比string這些
09/30 12:52, 9F

09/30 12:53, , 10F
快吧@@?
09/30 12:53, 10F

09/30 12:53, , 11F
喔對我是真的有設定過時區,結果發現PHP的TIME()拿到的
09/30 12:53, 11F

09/30 12:53, , 12F
都是同一個值,轉換之後也正常
09/30 12:53, 12F

09/30 12:54, , 13F
不過我那時候只是好玩試試看,所以也不是很確定對不對@@
09/30 12:54, 13F
文章代碼(AID): #1CeWUF-q (PHP)
文章代碼(AID): #1CeWUF-q (PHP)