蔚蓝 SQL "An error occurred while executing GlobalQuery operation: Encountered an unsupported intrinsic expression AT TIME ZONE."

Azure SQL "An error occurred while executing GlobalQuery operation: Encountered an unsupported intrinsic expression AT TIME ZONE."

我今天开始在 Azure SQL 环境中遇到此错误。从我们这边来看,Azure SQL 环境没有任何变化。架构对象、资源等没有变化

我在同一个 Azure sql 服务器上有两个数据库,这个错误发生在任何跨数据库查询中,但不会发生在单个数据库中。

比如这个查询成功:

select [LAST_MODIFIED], [LAST_MODIFIED] AT TIME ZONE 'UTC' AT TIME ZONE 'AUS Eastern Standard Time'
from hbm_client --this is a local table in the database

此查询失败:

select [LAST_MODIFIED], [LAST_MODIFIED] AT TIME ZONE 'UTC' AT TIME ZONE 'AUS Eastern Standard Time'
from hbm_client --local table
  inner join dbo.Account --table in other database, ignore the invalid join, it's not the cause

在没有数据库更改的情况下,关于什么可能导致这种行为变化的任何想法?

我遇到了同样的问题。出于某种原因 AT TIME ZONE 适用于我的很多查询,但其中一个查询失败。我没有深入研究这个问题,但我找到了 TRY_CAST

的修复方法
select TRY_CAST([LAST_MODIFIED] AT TIME ZONE 'UTC' AT TIME ZONE 'AUS Eastern Standard Time' AS DATETIME) as [LAST_MODIFIED]
from ...

如果愿意,您可以将 DATETIME 换成 DATETIME,但如果无法转换该值,它将 return 为 null 而不是错误