delete from t_df_data_month ddm where date >= DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01') and DATE_ADD(DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'), interval 1 month)>date ; INSERT INTO ddm select df.* from t_df_data df where 1 = 1 and df.date >= DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01') and df.data is not null and not exists ( select * from t_df_data t2 where t2.id>df.id and df.function_position = t2.function_position and t2.date >= DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01') and t2.data is not null );这段代码传参是什么
时间: 2024-03-19 08:44:21 浏览: 53
这段代码没有显式地传入任何参数,它使用了MySQL的一些内置函数和当前系统时间来获取需要操作的数据。其中,CURRENT_DATE()函数返回当前日期,DATE_FORMAT()函数将日期格式化为指定的字符串格式,DATE_ADD()函数用于计算下个月的日期。这些函数的返回值是动态计算的,不需要显式传入参数。
除此之外,这段代码对t_df_data和t_df_data_month表的操作都是直接写死的,没有通过参数进行传递。如果您需要将这段代码封装在一个方法中,可以将需要动态传入的参数作为方法的参数,并在SQL语句中使用占位符来动态替换。例如:
```
<delete id="deleteAndInsert" parameterType="java.util.Map">
delete from t_df_data_month ddm where date >= DATE_FORMAT(#{startDate}, '%Y-%m-01') and DATE_ADD(DATE_FORMAT(#{startDate}, '%Y-%m-01'), interval 1 month)>date ;
insert into ddm select df.* from t_df_data df where 1 = 1 and df.date >= DATE_FORMAT(#{startDate}, '%Y-%m-01') and df.data is not null and not exists (
select * from t_df_data t2 where t2.id>df.id and df.function_position = t2.function_position and t2.date >= DATE_FORMAT(#{startDate}, '%Y-%m-01') and t2.data is not null
);
</delete>
```
在这个例子中,我们使用了Map类型作为方法的参数类型,并使用#{key}的方式来引用Map中的值。这样,我们就可以在调用方法时传递startDate参数,用于动态构建SQL语句。
阅读全文