2012-03-18 46 views
4

Delphi不使用* nix時間戳。在其他應用程序中,我已經轉換爲* nix之前存儲在MySql中,並在檢索時反轉。Delphi/MySql:數據庫感知組件中的時間戳

現在我想嘗試第一次使用數據庫感知組件。它將如何運作tiemstamps?我應該(我可以)以Delphi tiemstamp格式存儲嗎?或shoudl我在存儲前轉換爲* nix?

+0

沒有什麼神奇的東西,時代僅僅是00秒以來的秒數: 00:00 01/01/1970 UTC – OnTheFly 2012-03-18 11:06:21

+0

unix epoch是 - 德爾福時代不是(它是一個Windows時代?)這將Delphi t/s轉換爲Unix時間戳:= Round((Now() - 25569.0 {Unix開始日期在德爾福條款})* 86400) – Mawg 2012-03-18 12:42:16

+0

nope,Windows的時間零點是1601 :-)順便說一句,不要重新發明輪子,DateUtils已經有一對方便的功能。 – OnTheFly 2012-03-18 15:26:57

回答

4

正常使用你不需要做任何事情。

我已經使用了Delphi/MySQL多年,並且我使用過的所有數據訪問組件(dbexpress/zeros/MyDAC)都會自動進行轉換。如果我需要手動指定時間戳值,我只提供文本格式(「yyyy/mm/dd hh:nn:ss」)

+0

+1所以,當你的SQL說... INSERT INTO ...「timestamp」...你通過Now()? – Mawg 2012-03-18 12:43:13

+3

如果使用MySQL時間戳,您可以將時間戳字段默認設置爲CURRENT_TIMESTAMP,那麼您不需要爲該字段分配任何值,只是跳過更新字段,時間戳字段將在創建/修改記錄時自動更新。如果你真的想手動給該字段賦予時間(現在),你可以通過CURRENT_TIMESTAMP或Now()或你想要的時間以文本格式「yyyy/mm/dd hh:nn:ss」。 – Justmade 2012-03-18 14:38:15

+0

+1。非常好的答案。 – kobik 2012-03-18 15:08:12