2016-08-17 125 views
0

我试图搜索很多关于这个问题..但它似乎告诉解决方案行情使用。STR_TO_DATE不正确的日期时间mysql

引用1234

在我的情况下,

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

它抛出错误:

错误代码:1411不正确的日期时间值:'17 -08-2016上午11时30分51秒” 的功能STR_TO_DATE

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

在此先感谢!

+2

用连字符替换'/'。 'select STR_TO_DATE('17-08-2016 11:30:51 AM','%d-%m-%Y%h:%i:%s%p');' – 1000111

+0

日期格式,我得到的是通过服务。所以不能改变它 – Vikrant

+0

我要求改变格式不是日期。仔细地看 – 1000111

回答

2

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

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

由于服务日期本身出错了。所以,服务需要改变:

以前通过billObj.BillingDate类型string

它改为:

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

而且它的工作:)感谢所有帮助!

相关问题