2013-09-30 2 views
0

이면 DATE_ADD의 인수를 테이블의 일부 필드 값으로 사용할 수 있습니다.mysql DATE_ADD INTERVAL 값이

SELECT DATE_ADD(some_date, INTERVAL some_number WEEK) as new_date FROM table1 

"WEEK"를 내 테이블의 값으로 바꿀 수 있습니까? DAY, WEEK, MONTH 등의 값을 가진 열이 있다고 가정 해 봅시다.

답변

1

번호 당신은 단지 표현을위한 동적 값을 가질 수 있지만, 간격에하지 단위 키워드. 단위 키워드는 SECOND, DAY_MICROSECOND 등이 될 수 있습니다.
이러한 단위 이름을 연결하면 문자열 표현이되며 간격 값으로 계산할 수 없습니다. 이렇게하려면 자리 표시 자 (prepared statement)를 사용할 수 없습니다.

또는 프로그래밍 언어로 부분 문자열을 연결하여 쿼리를 생성 할 수 있습니다.

String part1 = "SELECT DATE_ADD(some_date, INTERVAL some_number "; 
String part2 = "WEEK"; // say as default value 

if(my_condition_1_is_satisfied) then part2 = "DAY" 
else if(my_condition_2_is_satisfied) then part2 = "MONTH" 
else ... 

// then concatenate part1 and part 2 
String sql = part1 + part2; 
// now your query string is ready to use 

를 참조하십시오 DATE_ADD(date,INTERVAL expr unit)