2014-09-06 39 views
1

我有一個字段「時間」在我的MySQL服務器,並希望查詢數據庫在我的C程序得到如下這個領域:字符串中的打印C畫幅符獨立

select * from tbl where str_to_date(time, '%M %d %Y %H:%i:%s') > given_date 

現在的問題是打印格式說明符在我的查詢字符串中。如何在查詢字符串中打印%d,%i和%s?

+0

可你對什麼是詳細說明問題? – 2014-09-06 13:26:19

+0

@ Piotr S.當我使用sprintf在字符串中打印查詢時,它假定我想打印一個整數,因爲我放置了%d,但是我想在查詢中正好打印「%d」。 – MSH 2014-09-06 13:30:29

回答

2

如果你想在一個格式化字符串使用%,不使用它作爲一個格式說明,用%%代替:

char buffer[1024] = {}; 

char query_string[] = { 
     "select * from tbl where str_to_date(time, '%%M %%d %%Y %%H:%%i:%%s') > '%s'" 
}; 

char given_date[] = { "03 4 2014 14:55:21" }; 

sprintf(buffer, query_string, given_date); 

printf(buffer); 

輸出:

select * from tbl where str_to_date(time, '%M %d %Y %H:%i:%s') > '03 4 2014 14:55:21'