我正在从现有表 A 创建表 B。在表 AI 中有一个列 ValDate,它是 varchar 并包含日期。当我尝试创建表时,BI 在查询中使用了如下所示的函数,并且出现转换错误。表 A 也包含空值。微软访问:
((DateDiff("d",Date(),format(Replace(Replace([Table A].ValDate,".","/"),"00/00/0000","00:00:00"),"dd/mm/yyyy")))>0)).
表在 MS Access 中,正在迁移到 SQL Server 2012。
SQL 服务器:
((DATEDIFF(day,FORMAT( GETDATE(), 'dd-MM-yyyy', 'en-US' ),FORMAT( ValDate, 'dd-MM-yyyy', 'en-US' ))>0))
或者
((DateDiff(day,GETDATE(),Format(Replace(Replace([TableA].[ValidFrom],'.','/'),'00/00/0000','00:00:00'),'dd/mm/yyyy')))
我尝试使用 Convert 、 Format 和 Cast 等几种方法转换日期,但最终出现如下错误。
Msg 8116, Level 16, State 1, Line 1
Argument data type date is invalid for argument 1 of isdate function.
我真的很感激有人告诉我我在这里缺少什么。