MySQL SQLException: Zero date value prohibited ์ด์Šˆ

2023. 1. 20. 01:11ใ†๐Ÿ“” TIL

โšก๏ธ ์ƒํ™ฉ

>>> ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Zero date value prohibited 

์ž๋ฐ” ์†Œ์Šค์—์„œ mysql ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ.

Zero date ๋ผ๋Š” ๋กœ๊ทธ์—์„œ ์ถ”์ธก์ปจ๋Œ€ ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋‚ ์งœ ์ปฌ๋Ÿผ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

 

๐Ÿ“Œ ์›์ธ

์•„๋ž˜ ํ…Œ์ด๋ธ”์—์„œ ๋ณด๋“ฏ updated_at ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด ๋ชจ๋‘ zero date(0000-00-00 00:00:00)๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

์•„๋งˆ null ๊ฐ’์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๊ณต๋ฐฑ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด๋‘” ๊ฒƒ ๊ฐ™๋‹ค.

 

 

Mysql ์€ 0000-00-00 00:00:00 ํ˜•์‹ (= zero_date) ์œผ๋กœ ๋‚ ์งœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, (์ด๊ฒŒ ์ •์ƒ์ ์ธ date ๋Š” ์•„๋‹˜)

๋ฌธ์ œ๋Š” ์ž๋ฐ” ์†Œ์Šค(java.sql.Date)๊ฐ€ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

โœ… ํ•ด๊ฒฐ

2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ

1) ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ zero_date ๋ฅผ ์—†์• ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ,

2) ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ zero_date ๋ฅผ null ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

1) ๋‚ด ์ƒํ™ฉ์—์„œ๋Š” updated_at์˜ ๊ฐ’์„ created_at ์˜ ๊ฐ’์œผ๋กœ ์—Ž์–ด์ณ๋„ ๋ฌด๊ด€ํ–ˆ๊ธฐ์—, zero_date ๋ฅผ ๋ชจ๋‘ created_at ๊ฐ’ ์œผ๋กœ ๋ณ€๊ฒฝ์‹œ์ผฐ๋‹ค.

2) ํ•˜์ง€๋งŒ ๋ฌด์ž‘์ • created_at ์œผ๋กœ ์—Ž์–ด์น  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด, jdbc-url ๋’ค์— zeroDateTimeBehavior=convertToNull ์˜ต์…˜์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

>>> jdbc:mysql://{host}/{db}?zeroDateTimeBehavior=convertToNull