SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.01.2017 00:47:31

densio
Участник
Зарегистрирован: 31.01.2017
Сообщений: 2

Как изменить формат даты

Всем привет
НЕ ЗНАЮ Как изменить формат даты
в одном столбце есть даты
или
Есть столбец с датами
типа 
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'
прошу подсказать
заранее спасибо

Неактивен

 

#2 31.01.2017 09:14:45

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Как изменить формат даты

Покажите структуру Вашей таблицы ( show create table `t`; )
и приведите результат запроса

select * from `t`;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 31.01.2017 11:08:45

densio
Участник
Зарегистрирован: 31.01.2017
Сообщений: 2

Re: Как изменить формат даты

--
-- Структура таблицы `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

Неактивен

 

#4 31.01.2017 11:15:33

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Как изменить формат даты

Ну то есть у Вас дата хранится в строке (varhar) и все даты забиты  разных форматах.
Думаю, Вам лучше изменить тип данных колонки date_time на datetime или timestamp, "ручками" преобразовать все ваши строки с датами, а дальше, пользуясь функцией
https://dev.mysql.com/doc/refman/5.7/en … ate-format
выдавать результат конечному пользователю.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 31.01.2017 12:11:12

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Как изменить формат даты

Предлагаю вариант вида
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
Далее сами, надеюсь, допишите

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson