最近我们更新服务器和我们的数据库系统,以支持 UTC 时间,但是我们发现在一些复杂的查询中,我们需要转换服务器端的本地时间到毫秒级的 UTC 时间,以便执行一些操作。 在 SQL 服务器中,我们可以通过转换的技巧,轻松的实现 UTC 时间和本地时间的转换。
首先,我们可以使用 DateAdd 函数将本地时间转换为 UTC 时间,例如:
SELECT DATEADD(HOUR, -4, GETDATE())
这将在本地时间上减去4小时,从而将其转换为 UTC 时间。 我们可以通过使用 DateAdd 函数,以确定适用于当前服务器时区的 GMT 时差,然后进行计算:
SELECT DATEADD(HOUR, DATEDIFF(HOUR, GETUTCDATE(), CURRENT_TIMESTAMP), GETUTCDATE())
在上面的示例中,我们首先计算出当前服务器时区与 UTC 时区之间的小时差,然后将这个值添加到 getutcdate() 函数返回的 UTC 时间中。
要使用 DateAdd 函数转换毫秒级的 UTC 时间,我们需要使用 DATEADD 的 MILLISECOND 参数:
SELECT DATEADD(MILLISECOND, DateDiff(SECOND, 0, GetUtcDate()) * 1000, 0)
在本例中,我们将 GetUTCdate() 转换回从 1970 年 1 月 1 日开始的秒,然后将其乘以 1000,以换算为毫秒,然后将毫秒添加到 0 时间上。
我们可以使用上述技术,将 UTC 时间转换为其他 AndMS SQL 中的时区,最重要的是,我们已经可以支持复杂的查询,而无需担心服务器端本地时间和 UTC 时间的差异。 因此,我们可以准确而精确的执行诸如区分客户端和服务器时间之类的操作,只需要适当的时间转换技巧就可以实现。
四川成都云服务器租用托管【创新互联】提供各地服务器租用,电信服务器托管、移动服务器托管、联通服务器托管,云服务器虚拟主机租用。成都机房托管咨询:13518219792
创新互联(www.cdcxhl.com)拥有10多年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验、开启建站+互联网销售服务,与企业客户共同成长,共创价值。
网页名称:时区间的MSSQLUTC时间转换技巧(mssqlutc)
标题来源:http://www.csdahua.cn/qtweb/news34/349384.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网