2012-09-23 4 views
2

에 CSV 가져 오기 나는 다음과 같은 열 구조의 테이블을 가지고 :SQLite는 : 테이블

sqlite> create table stocks(stockticker varchar(4), tradedate date, open double, high double, low double, close double, volume integer, adjclose double); 

내가하고 싶은 것은이 하나 개의 테이블로 주식의 그룹에 대해 매일 주식 데이터를 저장하지만, 그것을 채우는 무엇이든 현재 존재하는 과거 데이터.

sqlite> LOAD DATA INLINE 'XLI.csv' 
    ...> INTO TABLE stocks 
    ...> FIELDS TERMINATED BY ',' 
    ...> LINES TERMINATED BY '\n' 
    ...> IGNORE 1 LINES 
    ...> (@tradedate, open, high, low, close, volume, adjclose) 
    ...> SET stockticker = 'XLI', 
    ...> tradedate = STR_TO_DATE(@tradedate, '%m/%d/%Y'); 
Error: near "LOAD": syntax error 
sqlite> 

지금 내가 SQLite는 많은 차이가 있지만이 있습니다 이해 : 그래서 다음을 수행하기 위해 내가 할 수 사용 MySQL은 XLI.csv

라는 파일로 야후/금융에서 XLI의 historicals 저장 나는 초보자 내가 일반적으로 다음 명령 구조가 발견 한 모든 예 : 나는 또한 'stockticker'필드를 설정해야하기 때문에 이것은 나에게 도움이되지 않습니다

sqlite> .import <filename> <table> 

을 첫 번째 줄 (헤더)를 무시하고 확인 날짜를 올바르게 가져옵니다. 설명서 나 인터넷에서 내가하고 싶은 것을 보여주는 예제를 발견하지 못했습니다.

귀하의 도움에 감사드립니다.

답변

2

스테이징 테이블에 원시 데이터를 가져 오려면 다음 날짜 문자열을 변환하는

, 유효한을 만들 수 있습니다 (조건이 첫 번째 줄의 값을 무시하는 곳에 추가) 틱 테이블에 내용을 선택 sqlite date string (예 : yyyy-mm-dd) 원래 날짜 문자열을 다시 배열하여 대상 날짜 열에 삽입합니다.

insert into tick (stockticker, tradedate, open, high, low, close, volume, adjclose) 
    select stockticker, (substr(date, 7) || '-' || substr(date, 1, 2) || '-' || substr(date, 4, 2)), 
    open, high, low, close, volume, adjclose from stage 
+0

감사합니다. jspcal. .csv 파일에 해당 열이 없으므로 stockticker 열이없는 준비 테이블을 만들었습니다. 내가 제공 한 코드를 실행하려면 예를 들어 stockticker 필드를 "XLI"로 설정하는 방법은 무엇입니까? 당신의 도움을 주셔서 감사합니다. – codingknob

+0

나는 틱 테이블의 모든 행에 대해 stockticker 필드를 설정/삽입하려면 어떻게해야합니까? 스테이징 테이블의 모든 내용을 틱 테이블에 복사했지만 지금해야 할 일은 주식 시세 필드로 설정됩니다. – codingknob

+0

찾았습니다 : http://stackoverflow.com/questions/6728738/how-to-insert-same-value-to-entire-column-in-sqlite3 – codingknob