2013-10-24 4 views
-1

stringdatetime으로 변환하는 방법 에서 sql을 사용 하시겠습니까?sqlite에서 SQL을 사용하여 문자열을 datetime으로 변환하는 방법

내 sqlite 데이터베이스에서 puttime 열은 nvarchar 유형이며 데이터를 null, 빈 문자열로 저장합니다. 2013-10-23, 2013-10-23 13:30:25, 2013-10-24 9:30 : 22 I 변환 아래의 쿼리를 사용

하지만 '2013년 10월 24일 9시 30분 22초의 성공을 변환 할 수 없습니다, 어떻게 그것을 할 :

select puttime, datetime(puttime) from tb_news 

결과 :

PutTime datetime(puttime) 
2013-05-06   2013-05-06 00:00:00 
2013-10-23   2013-10-23 00:00:00 
2013-10-23 13:30:25 2013-10-23 13:30:25 
2013-10-23 18:00:00 2013-10-23 18:00:00 
2013-10-24 17:32:33 2013-10-24 17:32:33 
2013-10-24 22:49:43 2013-10-24 22:49:43 
2013-10-24 9:30:22 
2013-10-25 00:01:33 2013-10-25 00:01:33 

감사합니다.

답변

-4
SimpleDateFormat format = new SimpleDateFormat(""dd-MM-yyyy"); 

SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd"); 

날짜 = df2.format (format.parse (str));

는 가장 가까운 날짜/시간 형식 SQLite는 기대

+4

이 SQLite는 명령하지 :

그래서, 필요할 때 바로 0를 추가 할 수 있습니다. –

3

YYYY-MM-DD HH:MM:SS 인이 한 선생님을 시도합니다.

데이터를 보면 편차가 YYYY-MM-DD H:MM:SS 인 이음새가 있습니다.

SELECT puttime, DATETIME(
    CASE SUBSTR(puttime, 14, 1) WHEN ':' THEN puttime -- Found ':' after HH 
    ELSE SUBSTR(puttime, 1, 11)||'0'||SUBSTR(puttime, 12) END 
) FROM tb_news 
+0

감사합니다 LS_dev, 데이터 2013-10-24 9:30:22, 귀하의 답변은 매우 정확합니다. 미안하지만, puttime 열이 nvarchar 형식이기 때문에 질문을 명확하게하지 않습니다.이 데이터는 다른 형식이 될 수 있으며 datetime 함수는 변환 할 수 없습니다 (예 : 2013-9-12 12:33 : 20, 2013-7-12, 2013-8-8 9:20:30, 2013-10-23 20 : 3 : 5, substr 함수를 사용하면 더 좋은 해결책이 있습니까? – Net205

+0

SQLite는 날짜/시간 타입을 지원하지 않습니다. 내장 함수는 일부 특정 형식을 지원합니다. 귀하의 경우 모든 기존 날짜를'YYYY-MM-DD HH : MM : SS'로 변환하고 응용 프로그램이 올바른 형식의 문자열을 저장하는지 확인하십시오. 데이터베이스에 삽입 된 날짜를 수정하는 트리거를 만들 수도 있습니다. –

관련 문제