1

是否可以自动将某些功能(用户定义/系统)应用于选定的列,可能会在模式级别绑定它。

我的场景是我在每个表中自动保存记录保存的时间戳,我已将其用作getdate() 这些列的默认值,在我们拥有自己的主机之前它工作正常。但是由于现在我们正在转向共享主机并且不知道服务器将来应该放置在哪个时区,所以我正在使用GETUTCDATE()获取 GMT 时间。

由于已经有很多程序/功能,我正在寻找不需要将这个 UTC 时间显式转换为我的本地时间的东西。

这样我Select * from MyTable就可以使用我创建的功能在我的固定时区给我时间。

让我知道它是否可能以任何方式。

谢谢。

4

1 回答 1

0

不清楚你想做什么,但没有办法用其他东西代替SELECT语句要求的东西:你在查询中要求的就是你得到的。除非您用同名视图替换表,但这可能不是最好的方法。

使用视图或函数仍然意味着无论如何您都必须更改代码,那么为什么不UPDATE将所有数据都转换为 UTC 时间,然后在应用程序代码中进行转换呢?SQL Server 不知道客户端所在的时区,因此不可能在服务器端可靠地进行转换。除非客户端将本地时区作为参数或 in 发送到服务器,否则CONTEXT_INFO没有多大意义,因为无论如何在客户端中执行此操作会更简单。

当然,在应用程序中处理这一切将为您提供更灵活、更强大的解决方案。

于 2012-06-27T16:02:02.460 回答