【发布时间】:2021-01-23 23:10:27
【问题描述】:
我正在搜索一个值,该值可在更新行时将列的值更改为当前 UTC 时间,但 UTC_TIMESTAMP 和 GETUTCDATE 仅用作默认值,而不是在 ON UPDATE 中使用时。
是否有解决方案,或者我必须通过应用程序手动为数据库提供 UTC 时间。
附: CURRENT_TIMESTAMP 有效,但不提供 UTC 时间。
【问题讨论】:
我正在搜索一个值,该值可在更新行时将列的值更改为当前 UTC 时间,但 UTC_TIMESTAMP 和 GETUTCDATE 仅用作默认值,而不是在 ON UPDATE 中使用时。
是否有解决方案,或者我必须通过应用程序手动为数据库提供 UTC 时间。
附: CURRENT_TIMESTAMP 有效,但不提供 UTC 时间。
【问题讨论】:
您可以设置默认值以在更新时自动递增:
此列仅在插入时更新:
inserted_at DATETIME DEFAULT CURRENT_TIMESTAMP
此列在插入或更新时更新:
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Here 是一个 dbfiddle。
注意:如果您愿意,这些可以与 timestamp 和 datetime 一起使用。
【讨论】:
convert_tz() 将 back 转换为 UTC。 “可见”时间戳只是为了方便。