C到Mysql中的数据类型兼容性
使用MS VC++2008在C中实现C到Mysql中的数据类型兼容性,mysql,c,Mysql,C,使用MS VC++2008在C中实现Ctime()以运行应用程序时遇到了一个问题 通过使用ctime我将获得当前的时间格式,即Sun Jan 09 14:38:09 2011。有没有办法将上述格式转换为2012-01-09 14:38:09(MYSQL格式)。C语言中有直接函数吗 有什么建议吗?根据man-ctime(): asctime()和mktime()函数都接受一个参数 表示分解时间,分解时间表示为 年、月、日等 我想你可以使用这些其他函数来做你想做的事情。C中没有。使用mktime(或
Ctime()
以运行应用程序时遇到了一个问题
通过使用ctime
我将获得当前的时间格式,即Sun Jan 09 14:38:09 2011。有没有办法将上述格式转换为2012-01-09 14:38:09(MYSQL格式)。C语言中有直接函数吗
有什么建议吗?根据
man-ctime()
:
asctime()和mktime()函数都接受一个参数
表示分解时间,分解时间表示为
年、月、日等
我想你可以使用这些其他函数来做你想做的事情。C中没有。使用mktime(或mktime\u r)和sprintf来创建你自己的时间格式。在我看来,处理这种(或任何其他)不匹配的唯一方法是将time()返回的原始值存储在表中;然后让任何应用程序(包括您的应用程序)将该值格式化为它想要向用户显示的任何安排 这种方法带来了三大好处:
我相信,最基本的一点是,你的桌子能被尽可能广泛地理解。您可以通过存储原始时间值来实现这一目标 您可以使用(或)将
时间转换为struct tm
,然后使用格式化日期
例如:
char out[20];
time_t t0 = time(0);
struct tm *tm0 = localtime(t0);
strftime(out, sizeof out, "%Y-%m-%d %H:%M:%S", tm0);
如果您需要不同数据库列的不同time\t
值,请创建它们。
然后转换为struct tm
,并按上述格式设置每种格式。
例如:
从评论中发布,以使OP能够接受作为答案使用sprintf(),而不是printf()。您可以使用(或)将时间
转换为struct tm
,然后使用格式化日期。谢谢你的想法奏效了。还有一个疑问。如果我想在atable的三个文件中插入当前时间。但是三个计时应该略有不同。可以这样做吗?现在我可以确定所有三个文件都包含相同的时间。例如:12:05,12:08,12:10..像这样?获取3个不同的time\t
值。将它们转换为struct tm
,并根据需要格式化每一个。示例:time\u t t0=time(0);时间t1=t0+3600;时间t2=t0+24*3600代码>
time_t t0 = time(0); /* now */
time_t t1 = t0 + 3600; /* 1 hour from now */
time_t t2 = t0 + 24*3600; /* 1 day (24 hours) from now */