如何在SQL中将子字符串中的数字转换为日期格式?

时间:2018-10-09 01:45:50

标签: sql

如何将这个特定示例格式化为dd-mm-yyyy格式?

在表table1中,我们有以下格式的字符串,我需要将日期值取出。

AB-20092018-data1 
CD-21918-notsodata1
EF-31012017-data1
GH-31117-notsodata

1 个答案:

答案 0 :(得分:0)

如上所述,您的31117记录将很难确定实际日期。

您可以像这样进行一些非常混乱的操作,以将日期格式从实际带有日期的格式中删除。

SELECT   cast(right(convert1, 4) + '/' + substring(convert1, 3, 2) + '/' + left(convert1, 2) as date) as LongDate1
FROM    (
    select left(substring('EF-31012017-data1',CHARINDEX('-','EF-31012017-data1') +1,len('EF-31012017-data1')),charindex('-',substring('EF-31012017-data1',CHARINDEX('-','EF-31012017-data1') +1,len('EF-31012017-data1')))-1) Convert1
) longer