0

次のコードがあります。

  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列を持つテーブルがあります。私はこの形式の文字列に時間を持っています: . 上記のクエリでエラーが発生します。そのフォーマットをMySQLにあるデータ型に保存するにはどうすればよいですか?StartTimeEndTimeDayofWeekActivity10:00 AMtime10: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]);

これは私にエラーを与えます:

mp1a.c: In function ‘main’:
mp1a.c:45:4: warning: unknown conversion type character ‘:’ in format [-Wformat]
mp1a.c:45:4: warning: format ‘%i’ expects argument of type ‘int’, but argument 4 has type ‘char *’ [-Wformat]
mp1a.c:45:4: warning: unknown conversion type character ‘:’ in format [-Wformat]
mp1a.c:45:4: warning: format ‘%i’ expects argument of type ‘int’, but argument 7 has type ‘char *’ [-Wformat]
mp1a.c:45:4: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat]
mp1a.c:45:4: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat]
mp1a.c:45:4: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat]
mp1a.c:45:4: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat]
4

3 に答える 3

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]);  

これは適切にフォーマットされており、表示される正確なエラー メッセージを追加すると、さらに修正するのに役立ちます

于 2013-08-22T04:52:27.300 に答える
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

于 2013-08-22T04:16:15.637 に答える