Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
T-SQL中UTC时间的临时变量_Sql_Sql Server_Sql Server 2016 - Fatal编程技术网

T-SQL中UTC时间的临时变量

T-SQL中UTC时间的临时变量,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我正在尝试将临时变量转换为UTC时间,并使用以下命令打印它: declare @dt datetime, @dtEnd datetime set @dt = '2017-04-25' AT TIME ZONE 'UTC' set @dtEnd = '2017-04-30' AT TIME ZONE 'UTC' select dateadd(day, number, @dt) from (select distinct number from master.dbo.spt_valu

我正在尝试将临时变量转换为UTC时间,并使用以下命令打印它:

declare @dt datetime, @dtEnd datetime
set @dt = '2017-04-25' AT TIME ZONE 'UTC' 
set @dtEnd = '2017-04-30' AT TIME ZONE 'UTC' 

select dateadd(day, number, @dt)
from 
    (select distinct number from master.dbo.spt_values
     where name is null
    ) n
where dateadd(day, number, @dt) < @dtEnd
我从接受的答案中得到了这个密码。 我犯了一个错误

参数数据类型varchar对于时区的参数1无效 功能

我正在使用SQL Server将CDT转换为UTC。链接答案非常适合在时区“UTC”不打印的情况下打印


如何将临时变量转换为UTC时间打印?

您需要使用转换为日期时间

declare @dt datetime, @dtEnd datetime
set @dt = CAST('2017-04-25' AS DATETIME) AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'UTC' 
set @dtEnd = CAST('2017-04-30' AS DATETIME) AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'UTC' 

select dateadd(day, number, @dt)
from 
    (select distinct number from master.dbo.spt_values
     where name is null
    ) n
where dateadd(day, number, @dt) < @dtEnd

在时区“UTC”设置@dt=convertdatetime,'2017-04-25',在时区“UTC”设置@dt=convertdatetime,'2017-04-25',在时区“中央标准时间”从CDT设置为UTC@AlexKudryashev魔法,真管用!把它贴出来作为答案,我会接受的!关于这个项目有好文章:@AlexKudryashev谢谢你的链接!你说的没错,但对于我的场景,我将其编辑为在时区“中心标准时间”和时区“UTC”使用。