但是,相同的应用程序在我的本地系统中运行时没有出现该错误。
我什至尝试按照同行的建议运行以下查询,但没有用。 请帮忙解决问题。
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});
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