2016-05-31 148 views
0

我在表中有一个非常简单的标签,标签为DDMMYY。我想将其转换为日期MM-DD-20YY。有没有一种简单的方法在SQL中执行此操作?如何从SQL中的字符串提取日期?

我不是一个专家级的开发人员,我觉得使用PatIndex(总是只有一个破折号)应该很容易,但是我到目前为止还没有任何地方,我希望有人能帮忙。

+3

欢迎,请添加任何你有这么远代码和样本,使我们可以从那里开始 – gerosalesc

+2

欢迎叠加!此外,请标记您正在使用的SQL的哪种风格(MSSQL,Oracle,MySQL等)。干杯! – scsimon

+2

你使用了什么[标签:rdbms]? – Mureinik

回答

0

这是MySQL的

你可以使用一些日期和字符串函数

select str_to_date(substr(my_column, LOCATE('-', my_column), 50),%d%m%y) 
from you_table ; 
0

在MSSQL中,你可以这样做:

SELECT SUBSTRING(T1.OriginalDate, PATINDEX('%-%', T1.OriginalDate)+3, 2) 
    + '-' 
    + SUBSTRING(T1.OriginalDate, PATINDEX('%-%', T1.OriginalDate)+1, 2) 
    + '-' 
    + '20' + SUBSTRING(T1.OriginalDate, PATINDEX('%-%', T1.OriginalDate)+5, 2) 
    AS NewFormatDate 
FROM (SELECT 'tag-310516' as OriginalDate) T1 
0

试试这个。(SQL服务器)

select cast (stuff(stuff(substring(column,patindex('%-%',column)+1,len(column)),5,0,'.20'),3,0,'.') as date) 
    from mytable 

借用从here

对于MySQL d,你可以尝试这样的事情

select str_to_date(concat(substring(yourcolumn,instr(yourcolumn,'-')+1,4),'20',substring(yourcolumn,length(yourcolumn)-1,2)),'%d%m%Y') 
from yourtable