错误代码[1411];日期时间值不正确:函数 str_to_date 的“”;嵌套异常是:函数 str_to_date 的日期时间值不正确:''

问题描述 投票:0回答:1
当我在实时服务器上运行基于网络的应用程序时,我遇到了上述错误。它一直运行良好,直到几天前我们发生服务器崩溃为止。现在重新安装后,我们收到上述错误。

但是,相同的应用程序在我的本地系统中运行时没有出现该错误。

我什至尝试按照同行的建议运行以下查询,但没有用。 请帮忙解决问题。

SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; SET SESSION sql_mode = 'ALLOW_INVALID_DATES'; SET SESSION sql_mode = '@old_sql_mode'; SET @old_sql_mode = @@sql_mode;
查询是:>

insert into at_ph_stockist_invoice(stockist_id, invoice_no, invoice_date, invoice_amt, invoice_disc_per, invoice_disc,taxable_amt,gst_amt, final_invoice_amt,invoice_status, pymnt_type, po_amt, po_id, po_num, po_dt,final_amt, added_by, added_on, added_ip, status_id, pay_bill_date, amount_received, change_given, balance) values(#{stockistId}, #{invoiceNumber}, DATE_FORMAT(STR_TO_DATE(#{invoiceDate}, '%e-%b-%Y'), '%Y-%m-%d'), #{invoiceAmmount}, #{discountPercentage}, #{discountAmmount},#{taxableAmt}, #{gstAmount}, #{finalInvoiceAmount},if(#{paymentType}='credit', 'pending', 'paid'), #{paymentType}, #{poAmt}, #{poId}, #{poNumber}, DATE_FORMAT(STR_TO_DATE(#{poDate}, '%e-%b-%Y'), '%Y-%m-%d'),#{finalAmount}, #{addedBy}, now(), #{addedIp}, fn_getcodevalue_id('STS','Active'), DATE_FORMAT(STR_TO_DATE(#{payBillDt}, '%e-%b-%Y'), '%Y-%m-%d'), #{amountReceived}, #{chngGiven}, #{balance});
    
sql database mysql-workbench
1个回答
0
投票
插入在 3 个地方使用了 str_to_date:

INSERT INTO at_ph_stockist_invoice ( ... , invoice_date , ... , po_dt , ... , pay_bill_date , ... ) VALUES ( ... , DATE_FORMAT(STR_TO_DATE(#{invoiceDate}, '%e-%b-%Y'), '%Y-%m-%d') , ... , DATE_FORMAT(STR_TO_DATE(#{poDate}, '%e-%b-%Y'), '%Y-%m-%d') , ... , DATE_FORMAT(STR_TO_DATE(#{payBillDt}, '%e-%b-%Y'), '%Y-%m-%d') , ... )
我无法使用 

MySQL(或MariaDb)在 dbfiddle 复制此问题

SET SESSION sql_mode = 'STRICT_TRANS_TABLES'; SET SESSION sql_mode = 'NO_ZERO_DATE'; select STR_TO_DATE('', '%e-%b-%Y') a , DATE_FORMAT(STR_TO_DATE('', '%e-%b-%Y'), '%Y-%m-%d') a1 , STR_TO_DATE(' ', '%e-%b-%Y') b , DATE_FORMAT(STR_TO_DATE(' ', '%e-%b-%Y'), '%Y-%m-%d') b1 , STR_TO_DATE(null, '%e-%b-%Y') c , DATE_FORMAT(STR_TO_DATE(null, '%e-%b-%Y'), '%Y-%m-%d') c1
    
© www.soinside.com 2019 - 2024. All rights reserved.