Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Конвертация поля


Автор: Rodman 2.2.2011, 14:32
Дароф

Исходные данные - файл-SQL... в котором есть следующие поля
Код

INSERT INTO `dimension` VALUES ('1', '2', '1', '2000-01-17 07:00:00', '0');


так вот предпоследнее поле надо разбить на два:
 - Дата
 - Время

можно ли как то конвертить средствами SQL или это уже лучше делать при помощи Delphi?

Сенкс

Автор: Zloxa 2.2.2011, 14:48
Цитата(Rodman @  2.2.2011,  14:32 Найти цитируемый пост)
файл-SQL... 

если операция одноразовая, фугануть какимнить регекспреплейсером замену (\d{4}-\d{2}-\d{2})(\s)(\d{2}:\d{2}:\d{2}) на \1','\3 тобишь  заменить "'2000-01-17 07:00:00'" на "'2000-01-17','07:00:00'"

Иначе - смотреть в сторону триггера, вьюхи с триггером

Автор: Akina 2.2.2011, 14:50
Код

CAST(field AS DATE), CAST(field AS TIME)

Автор: Zloxa 2.2.2011, 14:52
Akina, я думал в mysql нет таких типов  smile

Добавлено через 33 секунды
нуй и к тому ж ему надо вдуть инсерты в таблу отличной структуры.

Автор: Akina 2.2.2011, 15:43
Цитата(Zloxa @  2.2.2011,  15:52 Найти цитируемый пост)
 я думал в mysql нет таких типов  

Цитата

CAST(expr AS type) 
The CAST() function takes a value of one type and produce a value of another type, similar to CONVERT(). See the description of CONVERT() for more information. 

CONVERT(expr,type), CONVERT(expr USING transcoding_name) 
The CONVERT() and CAST() functions take a value of one type and produce a value of another type. 

The type can be one of the following values: 

BINARY[(N)] 
CHAR[(N)] 
DATE 
DATETIME 
DECIMAL[(M[,D])] 
SIGNED [INTEGER] 
TIME 
UNSIGNED [INTEGER] 


Автор: Akella 5.2.2011, 21:33
Тайной страшной название СУБД скрыто от нас

Автор: Akina 5.2.2011, 22:40
Цитата(Akella @  5.2.2011,  22:33 Найти цитируемый пост)
Тайной страшной название СУБД скрыто от нас 

Только одна БД генерит дамп в виде
Цитата(Rodman @  2.2.2011,  15:32 Найти цитируемый пост)
файл-SQL... в котором есть следующие поля
Код

INSERT INTO `dimension` VALUES ('1', '2', '1', '2000-01-17 07:00:00', '0');

Да и кавычки очень характерны...

Автор: Akella 6.2.2011, 10:29
Цитата(Akina @  5.2.2011,  22:40 Найти цитируемый пост)
Только одна БД генерит дамп в виде

База не генерит, она не может генерить, т.к. база - это просто хранилище.
Генерит программа. И Родман не хочет раскрывать нам эти секреты?

Добавлено @ 10:31
такой бы скрипт с лёгкостью схавала бы СУБД Firebird smile, а значит можно предположить, что Родман использует IBExpert smile, но это лишь предположение и мой хрустальный шар мог меня подвести.

Автор: Rodman 12.2.2011, 20:41
у Родмана есть только SQL файл. подозреваю что с мускула вытянут.. так считаю по тем же причинам как и Akina

а надо эти данные пихнуть в dbf таблица..

вот воюю.. не могу программно пока создать таблицу

Автор: Akina 12.2.2011, 21:07
Всё ещё воюешь??? я бы давно поставил локальный мускул, залил бы туда эти данные, а потом выплюнул запросом прямо в нужную DBF-структуру...

Автор: Rodman 12.2.2011, 21:12
так задача стоит не просто конвертнуть. а при помощи делфи кода!)

Автор: Rodman 12.2.2011, 22:24
http://forum.vingrad.ru/forum/topic-322416.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)