Grails-MySQL查询结果出错:时间格式错误

Grails-MySQL查询结果出错:时间格式错误,mysql,grails,gorm,Mysql,Grails,Gorm,我有这个查询(它在mySQL cmdline中工作得很好),但是当我在grails中使用executeQuery运行它时,我得到了这个错误:时间格式不好 以下是我的grails查询: def aveTimeToClose = OstFacTicket.executeQuery ("SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(t.closed, t.created)))) as cl " + "from OstFacTicket t WHERE t.cr

我有这个查询(它在mySQL cmdline中工作得很好),但是当我在grails中使用executeQuery运行它时,我得到了这个错误:时间格式不好

以下是我的grails查询:

def aveTimeToClose = OstFacTicket.executeQuery
("SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(t.closed, t.created)))) as cl " +
"from OstFacTicket t WHERE t.created >= :sdate AND t.created <= :edate AND " +
"t.closed IS NOT NULL", [sdate:start, edate: end])
在mySQL cmdline上运行效果良好:

mysql> SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(t.closed, t.created)))) as cl
from ost_fac_ticket t where created > '2011-01-01 08:12:49' AND created < 
'2011-12-31 10:12:49';
+-----------+
| cl        |
+-----------+
| 187:22:05 |
+-----------+
mysql>选择秒到秒时间(平均(时间到秒)(时间差(t.closed,t.created)))作为cl
从ost_fac_ticket t创建的位置>'2011-01-01 08:12:49'并创建<
'2011-12-31 10:12:49';
+-----------+
|氯离子|
+-----------+
| 187:22:05 |
+-----------+
谢谢,我非常感谢您的帮助。

我最终遵循了他的建议,只需在几秒钟内获得查询结果,并使用groovy将秒数转换为我想要的格式

基本上-

def aveTimeToClose = OstFacTicket.executeQuery("SELECT AVG(TIME_TO_SEC(TIMEDIFF(t.closed, t.created))) as cl "+
        "from OstFacTicket t WHERE t.created >= :sdate AND t.created <= :edate AND t.closed IS NOT NULL", [sdate:start, edate: end])
def aveTimeToClose=OstFacTicket.executeQuery(“选择平均值(时间到秒)(时间差(t.closed,t.created)))作为cl”+
“从OstFacTicket t,其中t.created>=:sdate和t.created我最终遵循了的建议,以秒为单位获取查询结果,并使用groovy将秒数转换为我想要的格式

基本上-

def aveTimeToClose = OstFacTicket.executeQuery("SELECT AVG(TIME_TO_SEC(TIMEDIFF(t.closed, t.created))) as cl "+
        "from OstFacTicket t WHERE t.created >= :sdate AND t.created <= :edate AND t.closed IS NOT NULL", [sdate:start, edate: end])
def aveTimeToClose=OstFacTicket.executeQuery(“选择平均值(时间到秒)(时间差(t.closed,t.created)))作为cl”+

"从OstFacTicket t WHERE t.created>=:sdate和t.created我猜JDBC中的某些东西试图将
187:22:05
解释为一天中的某个时间,并且感到不安,因为地球日没有187个小时。也许你应该在数据库之外进行
秒到秒时间的格式化。这耗尽了我的Groovy和Grails知识以及我的时间ost是我的JDBC的一部分,所以我觉得没有理由给出答案。一个简单的方法是调整查询返回,比如说,
11:22:05
,然后看看发生了什么。是的,这就是问题的原因。非常感谢。我猜JDBC中的某些东西试图将
187:22:05
解释为一天中的某个时间,并因此感到不安因为地球日没有187个小时。也许你应该在数据库之外进行
秒到秒时间
格式化。这耗尽了我的Groovy和Grails知识以及大部分JDBC知识,所以我觉得没有理由给出答案。一个简单的方法就是调整查询返回,比如说,
11:22:05
,看看会发生什么s、 是的,这就是问题的原因。非常感谢。你可以接受你自己的答案,在这里它似乎是合理的。我也不介意你基于我的建议,正如我所说,我不知道足够的Grails、Groovy或JDBC来提供我自己的答案。你可以接受你自己的答案,在这里它似乎是合理的。我不介意你基于我的建议正如我所说,我的建议是,我对Grails、Groovy或JDBC了解不够,无法提供我自己的答案。