2015-05-03 7 views
5

Sto cercando di importare un file in una tabella MySQL usando Sequel Pro.Come cambiare una stringa in una data durante l'importazione usando Sequel Pro?

So che ho bisogno di usare STR_TO_DATE, ma non riesco a capire la sintassi giusta.

mi sto un po 'di questi errori per ogni riga:

[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 

Ecco quello che sto facendo:

1 File> Importa. Il file si avvicina e il campo data nel CSV è fila 14:

enter image description here

2) Selezionare Data> Aggiungi espressione

enter image description here

3) Nella finestra Espressione, aggiungere questo codice :

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

enter image description here

4) Ottenere questo risultato:

enter image description here

5) Ottenere errore precedente. Qual è la sintassi corretta?

Può essere utile per dare un'idea della tabella che sto importazione in:

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; 

Nel messaggio di errore, Amazon e USD sono valori per i campi che seguono la data (country e currency) in ogni riga.

Grazie in anticipo!

risposta

6

L'ho capito.

Sono necessarie due cose per ottenere l'interfaccia utente per l'importazione.

1) Nella finestra espressione, questa è la sintassi da utilizzare:

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

Così cadere la parte SET date = e definiscono solo la riga all'interno delle parentesi per STR_TO_DATE().

2) Inoltre è necessario deselezionare la casella di controllo per Utilizzare l'ultimo valore modificato.

Ecco come si presenta:

Global source values window

Una volta che si fa clic su OK, l'importazione CSV si presenta così:

CSV ready to import

E poi ...

Success!

Sì!

Spero che questo aiuti qualcuno.

+0

Grazie! Ma hai capito come farlo una volta per un tavolo che devi continuamente troncare e ricaricare? Quando lo faccio, funziona, ma quando ho troncato i dati e aggiornato la tabella, la mia data torna a varchar. Non salva nemmeno le espressioni quando tento di ricaricare. – Ryan

Problemi correlati