2013-09-30 60 views
0

是否可以在DATE_ADD中使用參數作爲表中某個字段的值。mysql DATE_ADD INTERVAL as value

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

是否有可能從我的表中的一些值替換「周」。假設我有一個值爲DAY,WEEK,MONTH等的列。

回答

1

號只能有表達的動態值,但是,間隔不是爲單元關鍵字。單元關鍵字可以是SECOND,DAY_MICROSECOND等。
這些單元名稱的連接將產生一個字符串表達式,並且不能作爲區間值計算。 因此,您不能使用佔位符(準備語句)來實現此目的。

或者,您可以通過在您的編程語言中連接部分字符串來生成查詢。

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)