STR_TO_DATE 日期时间不正确 mysql

STR_TO_DATE incorrect datetime mysql

我试图搜索很多关于这个的问题..但它似乎告诉解决方案关于 Quotes use.

引用 : 1, , 3, 4

就我而言,

select STR_TO_DATE('17-08-2016 11:30:51 AM','%d/%m/%Y %h:%i:%s %p');

给出输出 NULL.
INSERT 语句中:

INSERT INTO BILLING(BILL_NUMBER,BILLING_DATE)
VALUES ('1',STR_TO_DATE('17-08-2016 11:30:51 AM','%d/%m/%Y %h:%i:%s %p'));

它抛出错误:

Error Code: 1411. Incorrect datetime value: '17-08-2016 11:30:51 AM' for function str_to_date

注意:1. 日期格式固定 > '%d/%m/%Y %h:%i:%s %p'
2. 字符串格式也是固定的 > '17-08-2016 11:30:51 AM' 这是我从 C# 服务中捕获的。

提前致谢!

您的格式与字符串不匹配。将斜杠更改为 -

select STR_TO_DATE('17-08-2016 11:30:51 AM','%d-%m-%Y %h:%i:%s %p');

因为服务本身的日期出错了。因此,需要更改服务:

之前传递 billObj.BillingDate 类型 string

改为:

billObj.BillingDate = (DateTime.ParseExact(billObj.BillingDate, HotelApplication.AppCode.BusinessLayer.util.StaticDefinitions.appDateFormat, CultureInfo.InvariantCulture)).ToString();

成功了:)感谢所有帮助!