我有 4 个数据库,每个数据库都在不同的时区。
我如何获得所有这些的日期和时间GetDateTime
。
通常我们得到服务器时间,但我需要数据库的日期和时间
如果您使用的是 SQL 2008 或更高版本,您可以查看
SYSDATETIMEOFFSET 和SWITCHOFFSET
通常,第一个是返回带有时区偏移部分的系统日期时间,例如 -07:00,第二个可以根据 datetimeoffset 和时区偏移属性计算时间。
由于时区没有数据库级别设置,您应该找到其他解决方案。
如果您想在同一个 SQL Server中管理一个应用程序,但要管理4 个不同的数据库,每个数据库都有正确的时区,我认为最好的方法是制作一个 SystemSetting(名称不重要)表,您可以在其中保存偏移量. 然后,您可以使用 SWITCHOFFSET 通过您需要的每个查询来计算给定数据库的正确时间。
或者您可以尝试使用虚拟机。
如果这些是 SQL 2008 服务器或更高版本...
select sysutcdatetime()