是否可以将 DATE_ADD 中的参数用作表中某个字段的值。
SELECT DATE_ADD(some_date, INTERVAL some_number WEEK) as new_date FROM table1
是否可以用我表中的某个值替换“WEEK”。假设我有一列包含值 DAY、WEEK、MONTH 等?
不可以。您只能为表达式设置动态值,但不能为间隔上的单位关键字设置动态值。单位关键字可以是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