2013-06-28 48 views
0

我如何將日期轉換爲字符串?我的數據庫是plsql,日期是從基本日期選擇器中插入的,我將其指定爲bdp1。如何將日期轉換爲plsql中的字符串?

select * from smsdw.lot_act where (tran_dttm <= to_date('4/20/2012', 'MM/DD/YYYY') and tran_dttm > to_date('4/19/2012' ,'MM/DD/YYYY')) 
+0

我的輸入,我從基本日期選擇器鍵入輸入日期不是字符串,但在我的數據庫字符串中,所以我需要將我的輸入轉換爲字符串。 – Husna5207

+0

您的查詢是正確的。有什麼問題? – Ben

+0

如果我想搜索日期'2012年4月19日'是的,我可以得到結果。但是如果我想將它改爲參數,我不能。這是來自oracle的查詢。 – Husna5207

回答

1

您的格式和您的字符串不同意。

你需要在4的前面有一個0,像這樣:04/20/2012

或者您需要調整您的格式,像這樣: M/D/YYYY
在第二看,to_date() documentation不顯示單M支持。你需要在你的月份中包含前導0,而當天的單一D將是非常愚蠢的。


根據您的評論進行更新。不過,讓我來領導一下,說用字符串連接來替代數據到這樣的查詢中,這就是邪惡並且很可能導致你的應用被黑客入侵。

Dim queryString As String = "select * from smsdw.lot_act where (tran_dttm <= to_date('" & bdp1.ToString("MM/dd/yyyy") & "','MM/DD/YYYY') and tran_dttm > to_date('" & bdp1.ToString("MM/dd/yyyy") & "' ,'MM/DD/YYYY')" 

作爲獎勵,這樣做的遠避免了需要在所有擔心日期格式:

Dim queryString As String = "select * from smsdw.lot_act where tran_dttm <= :bdp1 and tran_dttm > :bdp1 " 

command.Parameters.Add(":bdp1", SqlDbType.DateTime).Value = bdp1 

但同樣:不同的庫可以處理這個略有不同。有些需要:字符,有些不允許使用,有些需要按順序工作,而不是名稱(意思是需要兩次添加參數)。

+0

好吧我試圖轉換這樣但它不起作用>> Dim queryString As String =「select * from smsdw.lot_act where(tran_dttm <= to_date('」&bdp1.Month&「/」& bdp1.Date&「/」&bdp1.Year&「/,'DD/MM/YYYY')and tran_dttm> to_date(''&bdp1&'','MM/DD/YYYY') – Husna5207

+0

@ Husna5207有時候需要查詢參數/準備好的語句 –

+0

好吧然後假設我是做什麼的? – Husna5207