我在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)
答案 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