单独在字符串中打印C格式说明符

时间:2014-09-06 13:20:00

标签: mysql c time format-specifiers

我有一个领域' time'在我的Mysql服务器中,想要查询数据库以在我的C程序中获取此字段,如下所示:

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

现在问题是我的查询字符串中的打印格式说明符。如何在查询字符串中打印%d,%i和%s?

1 个答案:

答案 0 :(得分: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'