2013-03-18 27 views
1

我試圖從數據庫中檢索一些數據(字符串),並對它們執行一些操作,要求將它們轉換爲DateTime在Jasper Reports的select語句中使用convert

首先,雖然,我想知道是否可以從數據庫中提取String類型的數據,將它們轉換爲DateTime,然後在一份報告中使用它們。

不幸的是,我不能更改數據庫,我相信這會大大幫助。

所以我擡頭轉換命令,以及與此想出了:

(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語句。

+0

感謝您的編輯。如何更改選定項目上的文本顏色,以便我可以在將來自己做? – 2013-03-18 07:45:16

回答

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 
+0

它給了我一個錯誤:ORA-00936:缺少表達式。另外,我編輯了上面的代碼;我輸入了一個顯然會發出錯誤的消息。 – 2013-03-18 07:50:54

+0

函數CONVERT(VARCHAR(10),fld7,101)中VARCHAR(10)的地方你必須使用fld7列的數據類型 – Sharad 2013-03-18 08:32:10

+0

DateTime(10)和String(10)給我一個無效的標識符。 – 2013-03-20 02:37:13