首先,不允许使用任何其他编程语言。
考虑字符串形式mdY
中的日期,例如1252016
(除了领先的月份可能是1或2的字符长度)是2016年1月25日,10252016
是2016年10月25日。
在任何一种情况下,我们都希望将月份的子字符串作为:
SUBSTRING( "1252016" , 1, 1 ); => 1
或
SUBSTRING( "10252016" , 1, 2 ); => 10
。
例如:
CONCAT_WS( "-",
SUBSTRING( "1252016" , -4, 4 ) ,
SUBSTRING( "1252016" , 1, 1 ) ,
SUBSTRING( "1252016" , -6, 2 )
); => "2016-1-25"
有没有办法有条件地从字符串的开头获取1
或2
个字符,或者以其他方式从7
位置到字符串的开头负向读取,并反驳它?
使用其他编程语言的原因无法使用,原因是通过LOAD DATA LOCAL INFILE
导入约会的数量。据我所知,我只能控制查询的结构。
答案 0 :(得分:3)
用前导零填充字符串,然后使用STR_TO_DATE
函数:
SELECT STR_TO_DATE(LPAD('1252016', 8, '0'), '%m%d%Y');