二重引用符が問題です。あなたはそれらを倍増するか、またはそれらをエスケープする必要があります。 (ゼロで左のパッドに)
where c_policy_effective_date = concat_ws('-', policy_effective_date_yyyy,
(lpad(policy_effective_date_mm, 2, '"00"')),
(lpad(policy_effective_date_dd, 2, '"00"')))
または、おそらく:それはより標準に準拠した場合であることを
where c_policy_effective_date = concat_ws('-', policy_effective_date_yyyy,
(lpad(policy_effective_date_mm, 2, '0')),
(lpad(policy_effective_date_dd, 2, '0')))
注
あなたが意図した内容に応じて、あなたは書き込みのいずれかの可能性あなたは一重引用符で文字列を引用します。 the docsからのよう:
ANSI_QUOTES
SQLモードが有効になっている場合は、二重引用符で引用符で囲まれた文字列を識別子として解釈されるため、文字列リテラルは、単一引用符で囲んで引用符で囲むことができます。
二重引用符をエスケープする場合は、文字をエスケープする方法は倍音ではなく、バックスラッシュを接頭辞として使用することに注意してください。ただし、文字列の区切りにシングルクォートを使用する場合は、二重引用符でエスケープする必要はありません。
ありがとうございました!二重引用符を一引用符だけに変更し、コードが機能します。どこc_policy_effective_date = CONCAT_WS( ' - '、policy_effective_date_yyyy、 (LPAD(policy_effective_date_mm、2、 '00'))、 (LPAD(policy_effective_date_dd、2、 '00'))) – DP8
あなたの第二の答えも動作します!驚くばかり! – DP8