【发布时间】:2013-11-20 02:29:03
【问题描述】:
我希望在数据类型为 datetime2(7) 的列中插入一个默认值。但是,由于我的网站托管在不同时区的服务器上,因此 getdate 功能无法正常工作。我想知道是否有解决方案。我做了一些研究,发现了两种方法。 首先是使用 GetUTCDate() 函数。但是,我需要在显示信息时进行转换。我确信我的 Web 应用程序仅用于我的时区。所以我想避免这种情况。 第二种方式,这是我可以通过使用 SwitchOffSet 函数完成的最接近的方式:
CREATE TABLE [dbo].[Test_Date](
[test_id] [int] NOT NULL,
[test_date] [datetime2](7) NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Test_Date] ADD CONSTRAINT [DF_Test_Date_test_date] DEFAULT (switchoffset(CONVERT([datetimeoffset],getutcdate()),'+13:00')) FOR [test_date]
GO
但是,我的问题是未来几个月的 +13:00 原因,它将是夏令时更改的 +12:00 原因。结果,我每次都需要更改它。有人有解决办法吗?
谢谢。
【问题讨论】:
标签: sql-server getdate