0

我正在从现有表 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.

我真的很感激有人告诉我我在这里缺少什么。

4

1 回答 1

1
于 2014-10-15T13:45:05.667 回答