You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse视图日期查询报错求助(表查询正常)

Azure Synapse视图日期查询报错问题

我有一个Azure Synapse数据库,其中包含视图VW_REF_DATES,该视图有一个类型为datetime2(0)的列c_date。当在WHERE子句中使用c_date列添加日期条件查询该视图时,持续出现数据类型相关错误:"Conversion failed when converting date and/or time from character string.",但使用varchar(500)类型的其他列进行WHERE条件查询时正常。

将该视图转换为表后,使用同样的查询语句则可正常执行。想确认这是Azure Synapse DB独有的限制,而非MS SQL Server DB的问题吗?

示例查询语句

SELECT  * FROM [dbo].[VW_REF_Dates] DATES 
WHERE FORMAT(DATES.[c_date], 'yyyy-MM-dd') <= '2022-03-20'

或

SELECT  * FROM [dbo].[VW_REF_Dates] DATES
WHERE FORMAT(DATES.[c_date], 'yyyy-MM-dd') <= '2022-03-20'
       AND FORMAT(DATES.[c_date], 'yyyy-MM-dd') > '2021-03-19'

已尝试的查询方式(视图查询均失败,表查询正常)

SELECT  * 
FROM [dbo].[VW_REF_Dates] DATES 
WHERE YEAR(DATES.[c_date]) <= '2022'

或以下任意一种:

WHERE DATES.[c_date] <= '2022-03-20 00:00:00.000'
WHERE FORMAT(DATES.[c_date], 'yyyy-MM-dd') <= '2022-03-20'
WHERE CONVERT(date, DATES.[c_date]) <= '2022-03-20 00:00:00.000'

报错信息

Msg 241, Level 16, State 1, Line 14

Conversion failed when converting date and/or time from character string.

视图创建语句

CREATE VIEW [dbo].[VW_REF_Dates]
AS SELECT  CASE 
        WHEN CONVERT(DATETIME2(0), Att_5, 103) IS NOT NULL THEN CONVERT(DATETIME2(0), Att_5, 103)
        WHEN CONVERT(DATETIME2(0), Att_5, 101) IS NOT NULL THEN CONVERT(DATETIME2(0), Att_5, 101)
      END AS [c_date]
    , Att_6 AS [num_days]
FROM [dbo].[tbl_Ref]

样本数据

Att_5Att_6
22/06/2006NULL
21/06/2009364
28/06/2012338
24/06/2013316

内容的提问来源于stack exchange,提问作者van_nash24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 03:05:11