Manipulate the results of getdate() for databases in different time zones
我的应用程序支持在不同时区运行。 从本质上讲,该应用程序有一个用于西部成本的数据库/环境,一个用于东部成本。
应用程序使用getdate()计算当前时间。
我们没有源代码,因此无法使用自定义函数替换getdate。 有没有办法覆盖Getdate函数? 或者是否可以为不同的数据库配置不同的时区? 不同的情况怎么样?
SQL Server直接从主机操作系统中获取时间 - 它不是时区感知的,并且在一台服务器上无法说这个数据库或此实例在此时区中,并且此其他数据库或其他实例在此其他时区。您能够实现这一目标的唯一方法是拥有完全不同的服务器并关闭任何日期/时间同步服务(如果它们是虚拟机,则包括来自主机)。
您应该使用
您可以使用
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TRIGGER dbo.whatever ON dbo.tablename INSTEAD OF INSERT AS BEGIN SET NOCOUNT ON; INSERT dbo.tablename(col1, col2, date_created) SELECT col1, col2, SYSUTCDATETIME() FROM inserted; -------------------^^^^^^^^^^^^^^ this overrides what they passed END GO |
您还可以考虑新的