日期格式,SQL Server

时间:2015-05-12 13:48:30

标签: sql sql-server date casting format

我的最终公式有问题:

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) 

我收到错误:

  

从字符转换日期和/或时间时转换失败   字符串。

在我能够达到上述目标之前,我不得不重新安排我的日期,因为我在处理之前的日期时遇到了问题。我做了以下操作,以便将我的日期转换为所需的格式:(请记住我的日期是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))

希望我能够解释这一点,感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您无法在评论中实现所有好的建议,可以使用library(reshape2); dcast(myTable, Row ~ Col, value.var = "Value", drop = FALSE)来测试是否可以将字符串转换为日期。 编辑: 刚刚注意到你如何存储日期。在使用日期之前,请执行以下行:

ISDATE