我在表格中有一个数据类型为date
的列。现在我需要从现有日期起30分钟更新列。
例如,如果现有日期/时间是04-APR-17 06.20.11.454000000 PM,我需要将30分钟添加到现有时间线04-APR-17 06.50.11.454000000 PM。
这应该在不选择当前日期的情况下完成。我发现的解决方案是
update table_name
set column_name = 'SYSDATE - 30/1440';
但问题是我需要将此30分钟保持为动态,这意味着稍后我可以更改为40分钟,我将从属性文件更改。
有没有办法使用JDBC模板实现这一点,而不使用select语句,也没有更改代码(动态分钟)。
//更新: 可以从属性文件中读取分钟,并且coloumn_name sting可以从属性文件中连接。哪个可以实际传递给更新查询。这对我有用
答案 0 :(得分:0)
你可以使用一个休眠30分钟的线程并调用你的SQL来更新时间。使用Joda Time可以更好地体验Java日期。
while(true){
org.joda.time.DateTime current_date= new org.joda.time.DateTime();
current_date=current_date.withMinuteOfHour(30).
// Call sql
update table_name set column_name=current_date;
Thread.sleep(Property.getProps(CONFIGURED_TIME)*60*1000);
}
答案 1 :(得分:0)
更新TABLE_NAME设置COLUMN_NAME = COLUMN_NAME + 10/1440;这就是我想要的。从现有列时间更新列时间