sql-server - Getdate() 函数获取我的时区的日期

标签 sql-server getdate

我想在数据类型为 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() 函数获取我的时区的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20086189/

相关文章:

sql - 获取 Sybase 中本周的开始和结束日期

sql-server - 检索 SQL Server 中的日期; CURRENT_TIMESTAMP 与 GetDate()

SSIS 表达式 : convert date to string

sql-server - 如何在不更改行版本的情况下更新记录

sql-server - 从 SSRS 运行 SSIS 作业

mysql - 我无法通过 RoR 访问我自己的 MySQL 服务器?

java - 如何从 JSON 对象中获取日期

sql-server - SQL Server 在两个数据库之间同步数据

sql - 选择日期不在列表中的两个日期之间的天数差异

sql - SQL Server 2012 中某些表的 DEFAULT 约束中的 GETDATE