2013-08-19 32 views
0

我正在使用SQL Report Builder編寫報表。我必須使用以下語句從文本字段(customer_order_line_hist,field = message_text)導出兩個與日期相關的字段。如何將文本字段更改爲SQL Select Statement中的日期字段

原來MESSAGE_TEXT場總是與日期信息外相同:「計劃交貨日期已經從2013年6月28日00.00.00改爲2013年5月16日00.00.00」

我試圖將兩個輸出字段(FROM_DATE & TO_DATE)轉換爲日期時間字段或格式爲mm/dd/yyyy。

我嘗試了CONVERT和CAST函數,但沒有成功。有任何想法嗎?如果你的語法正確


Select SUBSTR(t.message_text, 49, 10) AS FROM_DATE, 
     SUBSTR(t.message_text, 72, 10) AS TO_DATE, 
     t.order_no, 
     t.line_no, 
     t.rel_no, 
     t.line_item_no, 
     t.history_no 
FROM customer_order_line_hist t 
Where t.message_text Like 'The planned delivery date%' 
+1

你正在使用哪些DBMS? SQL Server,MySQL等 – gvee

回答

0

轉換應該工作。試試這個簡化的測試:

declare @sText varchar(max) 

select @sText = 'The planned delivery date has been changed from 2013-06-28 00.00.00 to  2013-05-16 00.00.00' 


select convert(datetime, SUBSTRING(@sText, 49, 10)) AS FROM_DATE, 
    convert(datetime, SUBSTRING(@sText, 72, 10)) AS TO_DATE 
+0

我的數據庫實際上是Oracle,我使用PL/SQL Developer來測試我的select語句。運行您建議的簡化測試時,出現以下錯誤消息。 – user2696949

+0

ORA-06550:第1行,第9列; PLS-00103:在需要下列 開始功能編譯程序亞型類型<標識符>當前光標刪除中的一個時所遇到的符號「@」 存在現有 – user2696949

+0

Oracle數據庫11g 11.2 .0.3.0 - 64bit PL/SQL版本11.2.0.3.0 核心\t 11.2.0.3.0 64位Windows的TNS:版本11.2.0.3.0 NLSRTL版本11.2.0.3.0 – user2696949

相關問題