获取在DB中存储为varchar的日期的日期格式?

时间:2015-05-06 08:31:44

标签: sql-server

我正在尝试在我的数据库中修复一些日期(历史数据)。我想拉出这些字符串,然后将它们转换为特定的格式。

问题是并非所有日期都以相同的格式存储在数据库中,因此即使它们通过ISDATE()函数来验证它们实际上是日期,也有时会抛出错误。

因此,例如,当我尝试以下操作时,案例1会导致错误'从字符串转换日期和/或时间时转换失败。'但是案例2工作正常。

案例1

SELECT 
CONVERT(varchar(25),CONVERT(DATETIME, '01/01/2001 00:00:00', 120),103)+' 00:00:00' 

案例2

SELECT 
CONVERT(varchar(25),CONVERT(DATETIME, '01/01/01 00:00:00', 120),103)+' 00:00:00'

请注意,如果一年中的一年是2001年,则是区别于01.

那么是否有一个可以确定日期格式的函数,以便我可以在每种情况下进行相应的转换,或者您是否知道这个问题的更简单的解决方案?

0 个答案:

没有答案