继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

SQL Server全时区转换

kala16
关注TA
已关注
手记 260
粉丝 18
获赞 134

SQL Server全时区转换

假如你的应用程序是跨国(例如跨国银行交易)使用的话,那么数据库的一些国际化特性支持可以说是非常重要

其中最常见的就是各国时区上的差异,由于SQL Server getdate()读取的是本地机器所返回的值。

并不包含数据库时区位移,SQL Server2008新增了 datetimeoffset  数据类型(结合时区为基础的当日时间)

搭配SWITCHOFFSET 函数来更方便的处理时区转换问题

 

--时区转换SELECT SYSDATETIMEOFFSET() as "Taipei (GMT +8:00)",SWITCHOFFSET(SYSDATETIMEOFFSET(), '+09:00') as "Janpen (GMT +9:00)",SWITCHOFFSET(SYSDATETIMEOFFSET(), '-10:00') as "Hawaii (GMT -10:00)"

 

 


--取得台北的时区位移select DATEDIFF(MI, SYSDATETIMEOFFSET(),getdate()) as 'TimeZoneOffset'
 
480 min /60 min=8 hr

复制代码

--读取作业系统登录取得GMT和DST名称DECLARE @GMTname VARCHAR(100),@DSTname VARCHAR(100); EXEC xp_regread "HKEY_LOCAL_MACHINE","System\CurrentControlSet\Control\TimeZoneInformation","StandardName",@GMTname OUTPUT EXEC xp_regread "HKEY_LOCAL_MACHINE","System\CurrentControlSet\Control\TimeZoneInformation","DaylightName",@DSTname OUTPUT SELECT @GMTname as '格林威治标准时间(GMT: Greenwich Mean Time )',@DSTname as '夏令时(DST: Daylight Saving Time )'

复制代码

 

 


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP