【问题标题】:What is same as TIMESTAMP datatype in Access?Access 中的 TIMESTAMP 数据类型与什么相同?
【发布时间】:2013-08-16 04:14:54
【问题描述】:

对于自动日期\时间,我们在 SQL 中使用 TIMESTAMP 数据类型。什么相当于 MS Access 2007 中的该数据类型...

【问题讨论】:

    标签: sql ms-access ms-access-2007


    【解决方案1】:

    Access 中没有完全相同的等价物。
    澄清一下,SQL 中的 TIMESTAMP 并不总是一个可用的日期/时间,例如在SQL Server it is deprecated 中,等价于ROWVERSION,它总是返回一个唯一的值并且它不用于跟踪日期和时间,即使它的值是松散的从当前时间派生。

    但假设您要跟踪记录的更改。
    在 Access 中,您可以通过以下方式自动将字段设置为 DateTime:

    首先,您可以将=Now 指定为表中日期时间字段的默认值。这将分配创建记录的当前时间(但不会在记录更改时自动更新)。

    为了在您进行更改时记录当前日期时间,您必须在 VBA 中或通过宏对其进行编程:

    • 查看记录集时,只要对记录进行更改,只需更新您的 !ModifiedDateTime 或(无论您如何称呼您的字段)。

    • 当您的表/查询绑定到表单时,您可以通过处理表单的BeforeUpdate 事件让表单更新您的ModifiedDateTime 字段:

      Private Sub Form_BeforeUpdate(Cancel As Integer)
          ModifiedDateTime = Now
      End Sub
      

    如果您使用查询而不是表来绑定到表单,请确保该字段存在于查询中。

    在 Access 2010 及更高版本中,您还可以使用新的数据宏(与 Access 等效的触发器)来记录记录更改时的当前日期和时间。
    这不太便携,但可能比使用 VBA 更可靠,因为您不必记住在修改记录时对其进行编码(数据宏在 ACE 数据库驱动程序级别处理)。

    tons of articles 介绍了如何在 Access 中创建审计跟踪(如果您正在寻找)。

    【讨论】:

    • Timestamp in SQL 始终是可用的日期/时间。 SQL Server 中的时间戳 不同。
    【解决方案2】:

    DateTime 是 Access 中唯一基于日期的数据类型。然后,您可以将该字段格式化为“通用日期”或“长时间”以捕获到秒。我不认为 Access 比这更准确。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      • 2016-05-28
      • 2012-07-12
      相关资源
      最近更新 更多