Задавайте вопросы, мы ответим
Вы не зашли.
Всем привет
НЕ ЗНАЮ Как изменить формат даты
в одном столбце есть даты
или
Есть столбец с датами
типа
19-01-2017
2017-01-19 20:33:26
01.01.2017 10:48
01-01-2017 10:48
мне надо его переписать в формат 2016-06-10 15:03:34 'YYYY-MM-DD HH:MM:SS'
прошу подсказать
заранее спасибо
Неактивен
Покажите структуру Вашей таблицы ( show create table `t`; )
и приведите результат запроса
Неактивен
--
-- Структура таблицы `shared`
--
CREATE TABLE IF NOT EXISTS `shared_cdr` (
`ID` int(11) NOT NULL,
`date_time` varchar(255) DEFAULT NULL,
`num_a` varchar(255) NOT NULL,
`num_b` varchar(255) NOT NULL,
`duration` varchar(255) NOT NULL,
`coment` varchar(50000) DEFAULT NULL,
`name` text NOT NULL,
`city` varchar(2000) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
ID | date_time | num_a | num_b | duration | coment | name | city
2 | 2017-01-19 20:33:26 | 3XXXXXXXXXXX | 380XXXXXXXX | 450 | | ivan | uzgorod
4 | 19-01-2017 | 3XXXXXXXXXXX | 380XXXXXXXX | 45 | | petro | no
9 | 01.01.2017 10:48 | 3XXXXXXXXXXX | 380XXXXXXXX | 602 | | no | no
124 | 2017-01-19 22:30:27 | 3XXXXXXXXXXX | 380XXXXXXXX | 2 | | ivan | no
129 | 01.01.2017 12:52 | 3XXXXXXXXXXX | 380XXXXXXXX | 24 | | taxi | no
130 | 01.01.2017 | 3XXXXXXXXXXX | 380XXXXXXXX | 22 | | no | no
134 | 01-01-2017 22:30:27 | 3XXXXXXXXXXX | 380XXXXXXXX | 12 | | no | no
Неактивен
Ну то есть у Вас дата хранится в строке (varhar) и все даты забиты разных форматах.
Думаю, Вам лучше изменить тип данных колонки date_time на datetime или timestamp, "ручками" преобразовать все ваши строки с датами, а дальше, пользуясь функцией
https://dev.mysql.com/doc/refman/5.7/en … ate-format
выдавать результат конечному пользователю.
Неактивен
Предлагаю вариант вида
CASE date_time
WHEN REGEXP '\d{2}-\d{2}-\d{4}' then STR_TO_DATE(date_time,'%d-%m-%Y')
WHEN REGEXP '\d{2}.\d{2}.\d{4}' then STR_TO_DATE(date_time,'%d.%m.%Y')
...
end
Далее сами, надеюсь, допишите
Неактивен