Sql 转换动态偏移量和日期时间时出错

Sql 转换动态偏移量和日期时间时出错,sql,sql-server,datetimeoffset,Sql,Sql Server,Datetimeoffset,我有一个用于偏移量和日期时间的动态参数 我在转换日期时遇到问题 Declare @STR NVARCHAR (MAX) Declare @offset nvarchar = '+05:00' Declare @paramrequest date = '2017-03-30' SET @STR = 'select .... where ' + CONVERT(DATE, SWITCHOFFSET(CONVERT(DATETIMEOFFSET, + 'REQUESTDATETIME'), @off

我有一个用于偏移量和日期时间的动态参数

我在转换日期时遇到问题

Declare @STR NVARCHAR (MAX)
Declare @offset nvarchar = '+05:00'
Declare @paramrequest date = '2017-03-30'

SET @STR = 'select .... where '
+ CONVERT(DATE, SWITCHOFFSET(CONVERT(DATETIMEOFFSET, + 'REQUESTDATETIME'), @offset )) + ' >=' + CAST(@paramrequest AS DATE);

EXECUTE (@STR)
当我运行脚本时,它会让我出现这个错误。如何获取和修复此错误

从字符串转换日期和/或时间时,转换失败


您需要正确构建字符串。像这样使用
CONCAT

SET @STR = CONCAT('select .... where ',
  'CONVERT(DATE, SWITCHOFFSET(CONVERT(DATETIMEOFFSET,', 
  'REQUESTDATETIME),''',
  @offset,''' )) >= ''', 
 CAST(@paramrequest AS DATE), '''')