만약 필드가(여기서는 예로 GD_SALE_ENDDT로 하겠다) varchar로 되어있는데 날짜형식으로 데이터를 저장하고 있다면
select의 경우 다음과 같이
update t_goods set WEIGHT=54, UPDATE_DT=UPDATE_DT where GD_SALE_ENDDT > CURRENT_TIMESTAMP()
로 해도 자동으로 현재시간이 varchar로 형변환 되서 비교하게 된다.
하지만 update의 경우
select wid, GD_SEQ, GD_NAME, WEIGHT, GD_SALE_ENDDT, UPDATE_DT from t_goods where GD_SALE_ENDDT > CURRENT_TIMESTAMP()
이러식으로 하면
Data truncation: Truncated incorrect datetime value 이런 오류가 발생한다. 따라서
update t_goods set WEIGHT=54, UPDATE_DT=UPDATE_DT where GD_SALE_ENDDT > DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y%m%d%H%i%s');
와 같이 DATA_FORMAT을 이용하여 명시적으로 형변환을 해줘야 오류없이 비교가 된다.
*보통 날짜 포맷에서
MM(월) mm(분) 으로 월과 분을 구별하는데
쿼리문에서는 %m(월), %i(분)로 구별한다.