使用纯MYSQL以mdY格式插入日期

时间:2016-03-24 14:18:50

标签: mysql substring

首先,不允许使用任何其他编程语言。

考虑字符串形式mdY中的日期,例如1252016(除了领先的月份可能是1或2的字符长度)是2016年1月25日,10252016是2016年10月25日。

在任何一种情况下,我们都希望将月份的子字符串作为: SUBSTRING( "1252016" , 1, 1 ); => 1SUBSTRING( "10252016" , 1, 2 ); => 10

例如:

CONCAT_WS( "-",
    SUBSTRING( "1252016" , -4, 4 ) , 
    SUBSTRING( "1252016" , 1, 1 ) ,
    SUBSTRING( "1252016" ,  -6, 2 ) 
); => "2016-1-25"

有没有办法有条件地从字符串的开头获取12个字符,或者以其他方式从7位置到字符串的开头负向读取,并反驳它?

使用其他编程语言的原因无法使用,原因是通过LOAD DATA LOCAL INFILE导入约会的数量。据我所知,我只能控制查询的结构。

1 个答案:

答案 0 :(得分:3)

用前导零填充字符串,然后使用STR_TO_DATE函数:

SELECT STR_TO_DATE(LPAD('1252016', 8, '0'), '%m%d%Y');