直接执行与EXCU里执行,竟效果不同

SELECT EI.InspectDate,EI.InspectName,ET.EquipmentNumber,ET.EquipmentName,ET.ResponsibilityUser,
Division.DivisionName,EM.EquipLocation,EM.ItemDes,EM.InspectMethod,EM.InspectResult,EM.ResultValue,
case when datepart(hh,EI.InspectDate)<=12 then '上午' else '下午' end as FTIME
FROM Equip_Inspect EI JOIN Equip_InspectItem EM ON EI.Equip_InspectId=EM.Equip_InspectId JOIN InsPlan INS ON EI.InsPlanId=INS.InsPlanId
JOIN Equipment ET ON EI.EquipmentId=ET.EquipmentId LEFT JOIN Division ON ET.DivisionId=Division.DivisionId where 1=1 And INS.InsPlanName like '%d%' AND FORMAT(EI.InspectDate,'yyyy-MM')='2025-3'

在查询分析器中直接运行,可查询出结果

但赋值给变量,如通过EXECT (@SQL),查询不到数据,

 

原因竟是日期格式,‘yyyy-MM’在EXEC里执行是要严格匹配这样,改成'2025-03均可以执行。

 

另外通过复制变量,查询条件值一定要引号来区分下。

posted @ 2025-12-19 08:30  herry507  阅读(2)  评论(0)    收藏  举报