我有一個看起來像1003029303
的日期,我想這就是所謂的
linux
UNIX時間戳。正確的方法來保存1970年類型的日期
什麼格式,我應該將其保存在MySQL數據庫?我不認爲int(10)是正確的。
`gottime` int(10)
我有一個看起來像1003029303
的日期,我想這就是所謂的
linux
UNIX時間戳。正確的方法來保存1970年類型的日期
什麼格式,我應該將其保存在MySQL數據庫?我不認爲int(10)是正確的。
`gottime` int(10)
時間戳是簡單的整數。你可以像那樣存儲它。
您也可以使用MySQL的TIMESTAMP數據類型與FROM_UNIXTIME()和UNIX_TIMESTAMP()函數來轉換和從MySQL的格式。
$query = "UPDATE table SET
datetimefield = FROM_UNIXTIME($phpdate)
WHERE...";
$query = "SELECT UNIX_TIMESTAMP(datetimefield)
FROM table WHERE...";
我認爲你試圖拯救生日或類似的東西。 DATETIME格式是存儲過去日期的正確方法。 unix時間戳只能用於當前不超過30-40 +/-年的日期項目。
MySQL的DATETIME格式爲YYYY-MM-DD HH:MM:SS。
你不應該在數據庫中存儲UNIX時間戳。主要是因爲MySQL(除其他品牌)數據庫包括日期函數來計算幾乎任何類型的日期的功能,你能想到的。然而,如果你把它存儲爲一個時間戳,你就必須要麼,先轉換的MySQL中的時間戳,然後格式化,或使用PHP的date()函數。
我建議使用DATETIME
數據類型,然後使用FROM_UNIXTIME()
和UNIX_TIMESTAMP()
功能,根據需要轉換:
SELECT FROM_UNIXTIME(1003029303);
+---------------------------+
| FROM_UNIXTIME(1003029303) |
+---------------------------+
| 2001-10-14 05:15:03 |
+---------------------------+
1 row in set (0.08 sec)
SELECT UNIX_TIMESTAMP('2001-10-14 05:15:03');
+---------------------------------------+
| UNIX_TIMESTAMP('2001-10-14 05:15:03') |
+---------------------------------------+
| 1003029303 |
+---------------------------------------+
1 row in set (0.00 sec)
就個人而言,我存儲日期在使用DATETIME
字段類型MySQL數據庫。例如,2010-07-27 09:30:09
。
它比時間戳更容易閱讀,如果您需要將其轉換爲UNIX時間戳,您可以使用PHP的strtotime()
函數進行操作。
它更準確地稱爲UNIX時間戳。但我只是挑剔。 – BoltClock 2010-07-27 05:07:33