2015-11-02 122 views
-2

我想在Microsoft Access 2013中創建一個包含時間戳字段的表,但沒有時間戳或rowverion數據類型。我該怎麼做呢? 有沒有辦法在訪問中存儲時間戳?有沒有辦法在訪問中存儲時間戳?

+0

沒錯,你想完成什麼?你提到rowversion。在SQL Server中,rowversion和timestamp是同義詞。它們完全一樣,與日期/時間無關。它們是在記錄更改時自動更新的二進制數據。那麼,你在尋找那樣的東西嗎?或者只是記錄更新的日期/時間? – AVG

+0

是的,我想要的東西完全像SQL中的rowverion。在將數據更改爲Now()後,我可以使用日期/時間字段並進行手動更新。但我想要一個數據更改後自動更新的列。 –

+0

艾哈邁德。你的回答自相矛盾。你說你想完全像SQL Server rowversion。時間戳只是rowversion的另一個名稱。兩者都無關於日期/時間。但是你也可以說你可以用Now()來做 - 你不能這樣做,因爲rowversion是二進制數據而不是日期/時間。所以,我再問一次。你要哪個? – AVG

回答

2

根據您最後的評論,你需要兩個字段: LastEdited(日期/時間默認=現在( ))和TimesEdited(默認值爲0的長整數)。 LastEdited = Now() TimesEdited = TimesEdited + 1 由於您使用的是Access 2013,因此無論何時編輯記錄,都可以設置數據宏以更新。

+0

這是好的,但不是完全自動的;-) –

+0

@Ahmad - 這將是完全自動的,如果您使用了事件驅動的[數據宏](https://support.office.com/en-ca/article/Create-a-data-macro-b1b94bca-4f17-47ad-a66d-f296ef834200?CorrelationId=3d9c89a1-301e -4d1b-9c80-d6ca7a6de10a&ui = en-US&rs = en-CA&ad = CA)就像答案所示。 –

3

是的,雖然只有一秒的分辨率 - 設置字段=Now()

關於1/18秒的分辨率,加Timer小數部分:

Timestamp = Now() + (Timer() - Int(Timer()))/86400) 
相關問題