将varchar转换为日期

Dav*_*key 6 sql t-sql database sql-server

我(不幸的是)有一些日期被保存到varchar列中.这些列包含以下格式的日期:

MMDDYY

例如:

010110

我需要将这些值导入到一个表中,该表设置为datetime并格式化日期,如下所示:

2010-09-17 00:00:00.000

如何将上面的字符串转换为下面的日期时间值?

Dus*_*ine 8

CAST功能会这样做,问题是它会假设你前两位数是年份.这应该适合你:

SELECT CAST((RIGHT('010110',2) + LEFT('010110',4)) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

这假设所有日期都是MMDDYY.


bob*_*obs 5

这是一个解决方案

SELECT CAST(SUBSTRING(@date, 5, 2) + SUBSTRING(@date, 1, 4) AS DATETIME)
Run Code Online (Sandbox Code Playgroud)