日期格式,SQL 服务器

Date Formatting, SQL Server

我的最终公式有问题:

ALTER TABLE tempTestProject 
ADD [T12 Backdated jnls]  varchar(50)

update tempTestProject
set [T12 Backdated jnls] = 'X' where cast([Created Date] as date) > cast([Effective Date] as date) 

我收到错误:

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

现在,在我完成上述操作之前,我不得不重新安排我的日期,因为我在处理之前的日期时遇到了问题。我执行了以下操作以将我的日期设置为所需的格式:(请记住我的日期是 varchar (50) 并且最初采用 18/01/2014 格式)

ALTER TABLE tempTestProject 
ADD [Created Date]  varchar(50)

update tempTestProject
set [Created Date] = (RIGHT(["Created Date"],4) + '/' + SUBSTRING(["Created Date"],4,2) + '/'+ LEFT(["Created Date"],2))

ALTER TABLE tempTestProject 
ADD [Effective Date]  varchar(50)

update tempTestProject
set [Effective Date] = (RIGHT(["Effective Date"],4) + '/' + SUBSTRING(["Effective Date"],4,2) + '/'+ LEFT(["Effective Date"],2))

希望我已经解释清楚了,感谢您的帮助!

如果您无法实施评论中的所有好建议,您可以使用 ISDATE 来测试是否可以将字符串转换为日期来解决此问题。 编辑: 刚刚注意到您是如何存储日期的。在使用 is date 之前,执行这一行:

SET DATEFORMAT DMY;

select
case when ISDATE([CREATED DATE]) = 1
  then cast([CREATED DATE] as date)
else null
end as <Your date name here>