二重引用符が問題です。それらを元に戻すか、エスケープする必要があります。
意図に応じて、次のいずれかを記述できます。
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')))
文字列を一重引用符で囲むと、より標準に準拠することに注意してください。ドキュメントからのように:
SQL モードが有効な場合、ANSI_QUOTES
二重引用符で囲まれた文字列は識別子として解釈されるため、文字列リテラルは単一引用符でのみ引用できます。
二重引用符をエスケープする場合は、文字を二重にするのではなく、前にバックスラッシュを付けることで文字をエスケープすることに注意してください。ただし、文字列を区切るために単一引用符を使用する場合、二重引用符をエスケープする必要はありません。