Jasper date_sub错误

时间:2014-01-24 14:54:14

标签: mysql jasper-reports

我在Jasper中有一个查询:

     SELECT
         date_format(
         DATE_SUB(a.start_stamp, INTERVAL 5 hour),
         "%Y-%m-%d %H:%i:%s"
         ) as date,
    FROM
    a

如果我从Jasper单独运行它会运行正常,但在Jasper中会出错。如果我将鼠标悬停在小时字上,则表示:无关的输入小时,期待')'。此外,如果我删除DATE_SUB它没有给出错误。 我该如何解决这个问题?(我使用的是Jaspersoft Studio 5.5.0)

2 个答案:

答案 0 :(得分:0)

Jasper是否接受了这个?

SELECT DATE_FORMAT(a.start_stamp-INTERVAL 5 HOUR,'%Y-%m-%d %H:%i:%s') AS `date`
  FROM a

问题中的查询在as date之后有一个额外的逗号。它还在结果集中提供date作为列名,尽管DATE是一个保留的SQL字。它还使用双引号来包围格式字符串,甚至认为单引号通常用于MySQL中。

我也改变了日期算术运算。

答案 1 :(得分:0)

SELECT
   date_format(
     DATE_SUB(a.start_stamp, INTERVAL 5 hour),
     "%Y-%m-%d %H:%i:%s"
  ) as date
FROM 
   a

Date_Format 以字符串形式返回值,这就是它给出错误的原因。 解决方案 从查询中删除 date_Format 并使用文本字段日期格式选项。

尝试使用以下 1 来测试它。

 SELECT date_format(
        DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 5 hour),
        "%Y-%m-%d %H:%i:%s"
) as date