2017-05-24 1 views
-4

Ma transaction de base de données MySQL est hébergé dans Centos 7. Je reçois la sortie suivante de la requête avec jdbc:valeur de retour de STR_TO_DATE inattendue lors de l'utilisation avec JDBC

SELECT a.party_code, CAST (DATE_FORMAT (STR_TO_DATE (a. bill_month, '% y% m'), '% M-% Y') AS CHAR) Comme bill_month_word, a.bill_month, a.bill_amt, a.rebate, DATE_FORMAT (a.due_date, '% d-% m-% Y ') AS due_dt, DATE_FORMAT (a.bill_date,'% d-% m-% Y ') AS facture_date, b.name FROM v_bill_info a, consdb.v_party_info b O a a.party_code =' 230728 'AND a.party_code = b.party_code ET a.due_date> = CURDATE() ET a.bill_month NOT IN (SELECT a.bill_month FROM v_bill_info a, TRANSACTION b OERE b.consumer_no = '230728' ET b.consumer_no = a.party_code ET DATE_FORMAT (STR_TO_DATE (a.bill_month, '% y% m'), '% Y-% m') = DATE_FORMAT (b.bill_month, '% Y-% m') ET b.billdesk_status = '0300') ORDE R PAR LIMITE due_date 1

sortie est - "party_code" "bill_month_word" "bill_month" "bill_amt" "remise" "due_dt" "bill_date" "name" "230728" "2017 Avril" "1704" " 1272 "" 26 "" 30-05-2017 "" 18-05-2017 "" SRI KARTICK CHANDRA DAS "

Mais lors de l'exécution de la même requête à partir de la base de données MIS hébergée dans RHEL 7, je reçois une valeur nulle pour colonne bill_month_word. Mais la requête renvoie le résultat correct i.e "April-2017" lorsqu'il est exécuté à partir de l'éditeur de requête.

Répondre

0

Le problème a été associé à "Invalid Token" associée à MySQL dans Red Hat Linux 7.

La ligne suivante exige à ajouter dans /etc/my.cnf [mysqld] sql-mode = " STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION, ALLOW_INVALID_DATES "

redémarrez le service mysqld. Ce qu'il fait, c'est qu'il permet à JDBC d'extraire la valeur de date calculée en fonction de la valeur de date apparemment non valide passée à la fonction str_to_date().