我搜索了大约 20 个与错误消息“从字符串转换日期和/或时间时转换失败”有关的结果。似乎没有人能解决我的问题。
一点历史,上周五查询工作正常,返回的数据是正确的。在接下来的星期一,查询不再起作用并给出此错误消息,“从字符串转换日期和/或时间时转换失败。” 因此,经过几个小时的战斗,它能够运行一个包含有问题代码的函数,并且查询再次完美运行。直到今天早上。我进入办公室并运行查询并收到错误“从字符串转换日期和/或时间时转换失败”。所以现在我要把头发拉出来。
我首先使用 isDate 函数验证返回的每条记录实际上是有效日期。所有日期都是字符串格式的有效日期。我只是在检查记录是否超过 1 年。
我确实有几个 INNER JOINS 并且一直想知道它们是否会影响输出。
SELECT
gc2p.partnumber, gc2p.orderby, gc2p.campaigncode, gp2a.assetfilename
FROM [StepMirror].[dbo].[stepview_nwppck_ngn_getclassification2productrefs] gc2p
,[StepMirror].[dbo].[stepview_nwppck_ngn_getpimweblegalattrlist1] gpwa
,[StepMirror].[dbo].[stepview_nwppck_ngn_getclassification2assetrefs] gc2a
,[StepMirror].[dbo].[stepview_nwppck_ngn_getproduct2assetrefs] gp2a
WHERE gc2p.partnumber=gpwa.PARTNUMBER and
gc2p.id=gc2a.id and
gp2a.PRODUCTNAME=gpwa.PARTNUMBER and
ATTRIBUTENAME='New Date' AND
ATTRIBUTEVALUE > dateadd(month,-12,getdate()) AND
gc2p.id = '5665976' and
gc2a.assettype='Primary Image' AND
gp2a.ASSETTYPE = 'Primary Image'
order by gc2p.orderby
如果有人能帮我一把,那就太好了。
编辑:当我删除 'ATTRIBUTEVALUE > dateadd(month,-12,getdate())' 时,查询运行良好。我忘了提及引发错误的查询的确切部分。
编辑:更新的查询 -现在为那些寻求类似答案的人提供查询。
SELECT TOP 18 gc2p.partnumber, gpwa.ATTRIBUTECNAME,gp2a.ASSETFILENAME, gpwa.ATTRIBUTEVALUE
FROM [StepMirror].[dbo].[stepview_nwppck_ngn_getclassification2productrefs] gc2p
INNER JOIN [StepMirror].[dbo].[stepview_nwppck_ngn_getpimweblegalattrlist1] gpwa ON gc2p.partnumber=gpwa.PARTNUMBER and gpwa.ORDERBY='96'
INNER JOIN [StepMirror].[dbo].[stepview_nwppck_ngn_getclassification2assetrefs] gc2a ON gc2p.id=gc2a.id
INNER JOIN [StepMirror].[dbo].[stepview_nwppck_ngn_getproduct2assetrefs] gp2a ON gc2p.partnumber=gp2a.PRODUCTNAME
WHERE gc2p.id = 5665976 AND gp2a.assettype='Primary Image' AND gc2a.assettype='Primary Image'
AND(CASE WHEN ISDATE(ATTRIBUTEVALUE) = 0 then NULL ELSE ATTRIBUTEVALUE END) > dateadd(month,-12,getdate())
order by gc2p.orderby