Rag*_*oad 7 sql-server datetime triggers
是否有插入新数据时可用于更改DateTime字段的数据库级功能(触发器或其他内容)?问题在于,我正在整合的服务恰好在GMT中发送所有时间(在这种情况下是在他们的结尾收到一些信息的时间).
我需要自动更改此值以反映数据库服务器所在时区的时间.例如,如果他们在下午2:34发送给我,但我在纽约,我希望它在数据库中输入为9:凌晨34点.这也需要考虑GMT和服务器之间的夏令时差异,这似乎是一场噩梦.有什么建议?
另外,如果有帮助,我正在使用SQL Server 2005.
编辑:
让我澄清一件事.每隔一段时间(5,10,15分钟)批量检索进入此列的日期,因此我认为唯一的方法是在收到时更改时间,而不是添加TimeModified字段或其他内容.这甚至可行吗?
mar*_*c_s 16
你可以创造
一个默认值的DateTime,当你插入一个新的记录,其被设置
CREATE TABLE dbo.YourTable
( ........,
LastModifiedOn DATETIME
CONSTRAINT DF_YourTable_LastModifiedOn DEFAULT (GETDATE())
)
Run Code Online (Sandbox Code Playgroud)一个AFTER UPDATE TRIGGER,它会DateTime在您更新行时将字段设置为新值
CREATE TRIGGER trgAfterUpdate
ON dbo.YourTable
AFTER UPDATE
AS BEGIN
UPDATE dbo.YourTable
SET LastModifiedOn = GETDATE()
FROM INSERTED i
WHERE i.Table1ID = YourTable.Table1ID
END
Run Code Online (Sandbox Code Playgroud)使用默认值和触发器,您的日期时间字段LastModifiedOn应始终是最新的并显示上次修改日期/时间.
渣
| 归档时间: |
|
| 查看次数: |
13812 次 |
| 最近记录: |