在MySQL中存储AM / PM时间

时间:2013-08-22 04:05:55

标签: mysql cgi

我有以下代码:

  sprintf(aCommand,"insert into Schedule 
     set StartTime = TIME(STR_TO_DATE(%s,"%h:%i %p")), 
     EndTime = TIME(STR_TO_DATE(%s,"%h:%i %p")),
     DayofWeek = '%s', 
     Activity = '%s %s %s'",arr[2],arr[3],arr[1],arr[0],arr[4],arr[5]);  

我的表格Schedule包含以下列:StartTimeEndTimeDayofWeekActivity。我有一个字符串的时间,格式为10:00 AM。我上面的查询给了我错误。如何将该格式存储到MySQL中time的{​​{1}}数据类型?

编辑:这是新代码。

10:00:00

这给了我错误:

 sprintf(aCommand,"insert into Schedule
 set StartTime = TIME(STR_TO_DATE(%s,'%h:%i %p')), 
EndTime = TIME(STR_TO_DATE(%s,'%h:%i %p')), 
DayofWeek = '%s',Activity = '%s %s %s'",arr[2],arr[3],arr[1],arr[0],arr[4],arr[5]);

3 个答案:

答案 0 :(得分:1)

只是为了更好地格式化,请原谅我,如果这不是答案

sprintf(aCommand,"insert into Schedule 
     set StartTime = TIME(STR_TO_DATE('%s','%h:%i %p')), 
     EndTime = TIME(STR_TO_DATE('%s','%h:%i %p')),
     DayofWeek = '%s', 
     Activity = '%s %s %s'",arr[2],arr[3],arr[1],arr[0],arr[4],arr[5]);  

格式正确,添加确切的错误消息有助于进一步修复

答案 1 :(得分:0)

试试这个例子

DATE_FORMAT(%s,'%l:%i%p') instead of STR_TO_DATE

供参考检查此http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

答案 2 :(得分:0)

试试这个

select DATE_FORMAT(NOW(),'%h:%i %p')

Demo Here