我在excel中有一个VBA来将数据传输到MySQL,但是我对日期有问题

我在excel中有一个VBA来将数据传输到MySQL,但是我对日期有问题,mysql,sql,excel,vba,Mysql,Sql,Excel,Vba,我在excel中有一个VBA将数据传输到MySQL,但是我对日期有问题。我得到的错误是 运行时错误:2147467259(8004005):的日期时间值不正确 函数str_to_date 这是我的代码: sql = "Insert Into LeadBoard(Commodity,Last_Broadcast_Job,Material_to_Work, " _ & " Last_Picked_Job,Picked_Lead_Time,Last_Loaded_Job," _

我在excel中有一个VBA将数据传输到MySQL,但是我对日期有问题。我得到的错误是

运行时错误:2147467259(8004005):的日期时间值不正确 函数str_to_date

这是我的代码:

sql = "Insert Into LeadBoard(Commodity,Last_Broadcast_Job,Material_to_Work, " _         & " Last_Picked_Job,Picked_Lead_Time,Last_Loaded_Job," _         & "Loaded_Lead_Time,Dispatch_Lead_Time,Last_Dispatched_Job," _         & "Out_of_Dock_Time,Last_Dispatched_Rack," _         & "Last_Dispatched_Trailer,Customer_Point_of_Install,Excel_date_time, calc_Material_to_work," _         & "calc_Load_Lead_Time, calc_Picked_Lead_Time,calc_Dispatch_Lead_Time) " _         & " VALUES (" & Commodity & "," & Last_Broadcast_Job & ",'" _         & Material_to_Work & "'," & Last_Picked_Job & ",'" _         & Picked_Lead_Time & "'," & Last_Loaded_Job & ",'" _         & Loaded_Lead_Time & "','" & Dispatch_Lead_Time & "'," _         & Last_Dispatched_Job & "," & "STR_TO_DATE('" & Out_of_Dock_Time & "', '%m/%d/%Y %h:%i:%s'  ) ," _         & Last_Dispatched_Rack & "," & Last_Dispatched_Trailer & "," _         & Customer_Point_of_Install & "," & "STR_TO_DATE('" & FILEDATETIME1 & "', '%m/%d/%Y %h:%i:%s' ) ," _         & calc_Material_to_work & "," & calc_Loaded_Lead_Time & "," & calc_Picked_Lead_Time & "," & calc_Dispatch_Lead_Time & ");"
您的格式字符串

'%m/%d/%Y %h:%i:%s'
这是不正确的。根据日期格式说明符,
%h
表示12小时格式的小时数(即01-12)。相反,您需要使用
%H
读取24小时时间。正确的格式字符串是

'%m/%d/%Y %H:%i:%s'

那么,当错误发生时,
Out\u of\u Dock\u Time
的值是多少?或者问题可能出在
FILEDATETIME1
上。这些变量中的一个,或者甚至两个都有可能是问题。超时时间的值为04/10/18 17:26。并且将以这种形式出现。Fieldatetime1的格式为2018年10月4日17:26:PMHi@ADyson这就是我如何定义我的离港时间,这可能是原因吗?出坞时间=格式(XLsheet.Cells(i,CommodityCOl+10).值,“MM/dd/yy HH:MM:ss”)