在Jasper Reports的select语句中使用convert

时间:2013-03-18 07:21:24

标签: sql oracle11g jasper-reports ireport

我正在尝试从数据库中检索一些数据(String),并对它们执行一些操作,要求将它们转换为DateTime

首先,我想知道是否可以从数据库中提取String类型的数据,将它们转换为DateTime,然后在报告中使用它们。 / p>

遗憾的是,我无法更改数据库,我相信这会有很大帮助。

所以我查找了转换命令,并提出了这个:

(convert(datetime[10], fld7, 101))

这里使用的(作为DTEEEFFEC):

SELECT fld2 as EMPNAME, fld5 as EMPCLASSFROM, 
       fld6 as EMPCLASSTO, (convert(datetime[10], fld7, 101)) as DTEEFFEC,
       (b.LNAME  || ', ' || b.FNAME  || ' ' || b.MNAME) AS HROFF 
FROM dbase.table1 
    LEFT JOIN dbase.person_info ON $P{hrStoreOp}= b.ID_PERSONAL
WHERE compname = $P{COMPNAME} order by fld7,fld2 asc

它会返回一个错误:缺少右括号,或者,如果我删除括号和10,这一个:“DATETIME”:无效的标识符

编辑:我很抱歉我把它排除在外,但使用Oracle数据库意味着什么?我以为他们都使用类似的SQL语句。

1 个答案:

答案 0 :(得分:2)

试试这个

     CONVERT(VARCHAR(10),GETDATE(),110)

http://www.w3schools.com/sql/func_convert.asp

 SELECT fld2 as EMPNAME, fld5 as EMPCLASSFROM, 
   fld6 as EMPCLASSTO, CONVERT(VARCHAR(10),fld7, 101) as DTEEFFEC,
   (b.LNAME  || ', ' || b.FNAME  || ' ' || b.MNAME) AS HROFF 
 FROM dbase.table1 
   LEFT JOIN dbase.person_info ON $P{hrStoreOp}= b.ID_PERSONAL
 WHERE compname = $P{COMPNAME} order by fld7,fld2 asc