1
我正在使用sqlite datetime命令來獲取,設置和操作我的日期和時間字符串。 我首先在const char *中構造sql命令,然後使用sqlite3_exec執行命令,同時使用回調函數從(選擇)命令中獲取結果(如果有)。如何從sqlite日期和時間字符串獲取星期幾?
orderDataBaseRc = sqlite3_exec(orderDataBase, pSQL[i], callback, 0, &zErrMsg);
現在我想知道我的日期和時間字符串中的星期幾(月 - 日)和月(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 [I],似乎用的拷貝回來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]);
我是否需要在我的sql命令中封裝strftime(),看起來如何? – 2013-05-02 16:42:36
''從ordertable中選擇strftime('%w',OrderDateTime)「' – 2013-05-02 19:33:24
我已經這樣做了,但是我的程序在我的回調函數中崩潰了。 – 2013-05-03 08:48:24