Прежде всего, использование любого другого языка программирования не допускается.Вставка даты в формате mdY с использованием чистого MYSQL
Рассмотрите дату, подходящую в форме строки mdY
, например. 1252016
(кроме того, что ведущий месяц может быть длиной характера 1 или 2) является 25 января 2016 года, как 10252016
является 25 2016.
октября В любом случае, мы хотели бы подстроку месяца либо как: 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
. И насколько я понимаю, я могу контролировать структуру запроса.
Что бы правильный результат для '1112016'? 11/1/2016 или 1/11/2016? –
@JoachimIsaksson он просто должен вставить как правильную 'DATE' в базу данных. Независимо от того, начинается ли формат с «mdY» или «dmY», не имеет значения, поскольку любой из них имеет потенциал для того, чтобы ведущий «d/m» был как 1 или 2 в длине символа. – Jonathan
@JoachimIsaksson правильный. Формат даты по своей сути неоднозначен во многих случаях, когда у вас есть семизначное число. Усилия по импорту данных, как указано в настоящее время, не удастся. Если вы можете получить источник данных для записи '12052016' за 5 декабря 2016 года и' 01252016' за 25 января 2016 года, у вас будет шанс на эту работу. Но если вы получите '1252016', вы просто не можете различить разницу между ними. –