mysql DATE_ADD INTERVAL作为值

时间:2013-09-30 09:26:01

标签: mysql dateadd

是否可以将DATE_ADD中的参数用作表中某些字段的值。

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

是否可以用我的表中的某个值替换“WEEK”。假设我有一个值为DAY,WEEK,MONTH等的列?

1 个答案:

答案 0 :(得分:1)

没有。您只能为表达式设置动态值,但不能为 单元 关键字创建一个动态值。单位关键字可以是SECONDDAY_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)