2015-05-03 6 views
5

Próbuję zaimportować plik do tabeli MySQL przy użyciu Sequel Pro.Jak zmienić łańcuch na datę podczas importowania za pomocą Sequel Pro?

Wiem, że muszę użyć STR_TO_DATE, ale nie mogę znaleźć właściwej składni.

Dostaję sporo tych błędów dla każdego wiersza:

[ERROR in row 1] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET date = STR_TO_DATE(@'11/1/11', '%m/%d/%Y');,'Amazon','USD')' at line 2 

Oto co robię:

1 Plik> Importuj. Plik podchodzi i pole daty w formacie CSV jest wiersz 14:

enter image description here

2) Wybierz Data> Dodaj wyrażenie

enter image description here

3) W oknie Wyrażenie dodać ten kod :

$14, SET date = STR_TO_DATE(@$14, '%m/%d/%Y'); 

enter image description here

4) Pobierz ten wynik:

enter image description here

5) Get błąd powyżej. Jaka jest prawidłowa składnia?

Może to być pomocne, aby dać Ci pomysł na stole mam importujący:

CREATE TABLE `Amazon_copy4` (
    `key` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `Title` varchar(255) DEFAULT NULL, 
    `Author` varchar(255) DEFAULT NULL, 
    `ASIN` varchar(255) DEFAULT NULL, 
    `Units Sold` int(11) DEFAULT NULL, 
    `Units Refunded` int(11) DEFAULT NULL, 
    `Net Units Sold or KU/KOLL Units**[1]` int(11) DEFAULT NULL, 
    `Royalty Type[2]` varchar(255) DEFAULT NULL, 
    `Transaction Type*[3]` varchar(255) DEFAULT NULL, 
    `Avg. List Price without VAT` decimal(19,2) DEFAULT NULL, 
    `Average File Size` float(5,2) DEFAULT NULL, 
    `Avg. Offer Price without VAT` varchar(255) DEFAULT NULL, 
    `Average Delivery Cost` varchar(255) DEFAULT NULL, 
    `Royalty` decimal(19,2) DEFAULT NULL, 
    `date` date DEFAULT NULL, 
    `country` varchar(255) DEFAULT NULL, 
    `currency` varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`key`) 
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; 

w komunikacie o błędzie, Amazon i USD są wartości dla pól, które następują datę (country i currency) w każdym rzędzie.

Z góry dziękuję!

Odpowiedz

6

Wymyśliłem to.

Uzyskanie interfejsu użytkownika do importu zajmuje dwie rzeczy.

1) okna ekspresyjnego, to jest składnia użyć:

STR_TO_DATE(@$14,'%m/%d/%Y') 

więc spadek SET date = część i zdefiniować tylko wiersz wewnątrz parens do STR_TO_DATE().

2) Należy również wyczyścić pole wyboru dla Użyj ostatnio edytowanej wartości.

Wygląda to tak:

Global source values window

Po kliknięciu OK, import CSV wygląda tak:

CSV ready to import

a potem ...

Success!

Tak!

Mam nadzieję, że to pomoże komuś.

+0

Dzięki! Ale czy wiesz, jak to zrobić raz na stół, który ciągle obcinacie i ponownie przesyłasz? Kiedy to zrobię, to działa - ale kiedy obcię dane i zaktualizuję tabelę, moja data trafi z powrotem do varchar. Nawet nie zapisuje wyrażeń, gdy próbuję ponownie przesłać. – Ryan