SQL Server 的本地时间和UTC时间
一,本地时间和UTC时间
本地时间
世界的每个地区都有自己的本地时间,整个地球分为二十四时区,每个时区都有自己的本地时间。
UTC时间
在国际无线电通信中,为统一而普遍使用一个标准时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC时间和英国伦敦的本地时间相同。
UTC时间在世界各地都是相同的,但是不同的时区,本地时间各不相同。根据UTC时间和所在的时区,能够计算出本地时间。
二,获取本地时间和UTC时间
在Sql Sever中,GetDate()返回的是本地时间,GetUTCDate()返回的是UTC时间,返回的数据类型是DateTime;SysDateTime() 返回的是本地时间,SysUTCDateTime() 返回的是UTC时间,返回的数据类型是DateTime2(7)。
在不同的时区,UTC时间相同,但是本地时间不同。本地时间是Server上显示的系统时间,在OS中变更时区(time zone),能够修改本地时间和GetDate()的返回值。本地时间是根据UTC时间和OS设置的时区推导出来的。
结论:GetDate() 和SysDateTime() 返回的是本地Server的Date和Time,这个值跟Sql Server实例所在的PC的OS有关,跟OS显示的时间是相同的。
三,Sql Agent 执行Job的时间
在Sql Server Agent中使用的时间是本地时间,Job的执行时间是本地时间。