2013-05-02 67 views
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]); 

回答

0

ü se strftime()%w%m

+0

我是否需要在我的sql命令中封装strftime(),看起来如何? – 2013-05-02 16:42:36

+0

''从ordertable中选择strftime('%w',OrderDateTime)“' – 2013-05-02 19:33:24

+0

我已经这样做了,但是我的程序在我的回调函数中崩溃了。 – 2013-05-03 08:48:24

相关问题