2015-05-15 2 views
0

Я пытаюсь скопировать данные из table1 в table2 в LibreOffice базе, используя запрос типа:вставки в выбор с различными типами данных

INSERT INTO "table1" ("column1", "column2", ...) 
SELECT "column3", "column4", ... 
FROM "table2"; 

column4 является VARCHAR со значением, как '5/5/2015'. Моя проблема в том, что column2 - это тип DATE. Итак, как я могу сделать column4DATE для регистрации в column2?

+0

Добро пожаловать в stackoverflow. Пожалуйста, прочитайте [ask]. Подсказка: вы пробовали искать функции преобразования в своей документации по базе данных? –

+0

Я нашел что-то вроде этого SELECT CAST («5-5-2015», DATE), но когда я заменю «5-5-2015» по имени моего столбца, это не работает. – djamnazi

ответ

1

Да, вам нужно использовать команду CAST.

Похоже, вы преобразовываете строку «column4» в дату NOT, данные в столбце. Попробуйте заменить кавычки в квадратные скобки, как это ...

INSERT INTO table1 ([column1], [column2], ...) 
SELECT [column3], CAST([column4] AS DATE), ... 
FROM table2; 

или удалить все разделители, как это ...

INSERT INTO table1 (column1, column2, ...) 
SELECT column3, CAST(column4 AS DATE), ... 
FROM table2; 

Вам нужно только приложить имена столбцов, если у них есть пробелы/специальные символы или include SQL keywords

+0

Я попробовал то, что вы предложили, но он не работает. я думаю, что необходимо включить все имена столбцов. И мои имена столбцов имеют пробелы. – djamnazi

+0

Если в названиях столбцов есть пробелы, тогда вам необходимо их приложить. Если он все еще не работает, отправьте весь запрос вместе с сообщением об ошибке. – abaldwin99

+0

вот мой querry: INSERT INTO «personne» («numsecu», «nom», «datenaissance») ВЫБЕРИТЕ «Num Securité Sociale», «Nom», CAST [Date de naissance] FROM «donnee», – djamnazi