2013-05-02 3 views
1

sqlite datetime 명령을 사용하여 날짜 및 시간 문자열을 가져오고 설정하고 조작합니다. 먼저 const char *에서 sql 명령을 구성한 다음 sqlite3_exec를 사용하여 명령을 실행하면서 콜백 함수를 사용하여 (select from) 명령에서 결과를 가져옵니다.sqlite 날짜 및 시간 문자열에서 요일을 구하는 방법은 무엇입니까?

orderDataBaseRc = sqlite3_exec(orderDataBase, pSQL[i], callback, 0, &zErrMsg); 

이제 내 날짜와 시간 문자열에서 요일 (mo-su)과 월 (jan-dec)을 알고 싶습니다.

어떻게하면 sqlite에서 할 수 있습니까? 설명서는 내가 설명서에서 훨씬 더 현명해질 수 있고 예제를 찾기가 어렵다고 말합니다.

은 제가 사용하고있는 SQL 명령의 몇 가지 예를 들어 보겠습니다 :

"create table orderTable (OrderId integer primary key asc, CustomerId integer, OrderValue, OrderDescription, OrderDateTime DATE, OrderDueDateTime DATE)" 

"create trigger insert_orderTable_OrderDate after insert on orderTable begin update orderTable set OrderDateTime = datetime('now') where rowid = new.rowid; end;" 

"update orderTable set OrderDueDateTime = datetime('" << iOrderDateTime << "', '+1 day') where OrderId = " << orderId 

을 그래서 지금 내 날짜 시간 문자열의 요일과 달을 알고 할 수 있어야합니다.

나는 다음과 같은 성명을 건설하고 sqlite3_exec로 떨어져 발사 한 아래의 제안에 따르면

"select strftime('%A', OrderDateTime) FROM orderTable where OrderId = " << orderId; 

그럼 내 콜백 함수에 다음 코드 (azColName [내가]의 사본 돌아올 것으로 보인다 SQL 문을 :

char* columnName; 

for(int i=0; i<argc; i++) 
{ 
    columnName = azColName[i]; 
    string dayOfWeek; 

    if(strcmp(columnName, "strftime('%A', OrderDateTime)")==0) 
    { 
    dayOfWeek = string(argv[i]); 
    } 
    ... 
} 

는하지만

dayOfWeek = string(argv[i]); 

답변

0

U에 충돌 과 %w%m.

+0

sql 명령에 strftime()을 캡슐화해야하며 어떻게 생겼습니까? –

+0

''strftime ('% w', OrderDateTime)을 orderTable에서 선택하십시오. " –

+0

그 일을했지만 콜백 함수에서 프로그램이 중단됩니다. –

관련 문제