挣扎于简单的sql代码。
首先,我有一个select,它工作正常并生成一行,其中duration列的格式为hh:mm:ss(即14:28:10)
<sql:query var="newquery" dataSource="jdbc/datbase">
select SEC_TO_TIME(secdiff) as Duration, assetid
from
(select TIMESTAMPDIFF(SECOND, ts, '<%=endt%>') as secdiff, assetid
from
(SELECT * FROM
(select * from logs
where assetid =${ param.assetid }
order by ts desc
)AS T
)AS U
)AS V
group by assetid
</sql:query>
然后我想使用duration来更新另一个表的第一行中的duration值,因此我假设必须首先设置一个变量-
<c:forEach var="newrow" items="${newquery.rows}">
<c:set var="interval" value="${newrow.Duration}"/>
</c:forEach>
然后只更新表中的第一行-
<sql:update var="anotherquery" dataSource="jdbc/database">
update duration SET Duration = ${interval} LIMIT 1;
</sql:update>
此操作失败,可能是因为语法错误接近限制1,也可能偶尔显示间隔变量缺少字符,即“30:28”而不是“14:30:28”,这可能是文本变量格式问题。
如果我在mysql工作台中输入这些命令,它们就可以正常工作。
感谢您的帮助。
向拉尔夫问好
暂无答案!
目前还没有任何答案,快来回答吧!