2012-09-18 50 views
0

在oracle中,當我使用下面的查詢進行搜索時,它正在提取錯誤的記錄(查看附加的截圖),有人可以建議12小時的正確格式。在oracle中使用to_char搜索日期和時間

to_char(a.created, 'MM/DD/YYYY HH12:MI:SS') >='05/23/2012 12:00:00' 

謝謝, 基蘭。 enter image description here

回答

2

不要根據字符串進行搜索。根據日期搜索。如果你搜索一個字符串,你會得到不是你想要的字符串比較語義。字符串'06/01/1900'在字符串'05/23/2012'之後按字母順序排列,儘管它代表的日期早得多。

a.created >= to_date('05/23/2012 12:00:00', 'mm/dd/yyyy hh24:mi:ss') 

或使用12小時時鐘

a.created >= to_date('05/23/2012 03:15:00 pm', 'mm/dd/yyyy hh:mi:ss am') 
+0

感謝賈斯汀,但我怎麼搜索>爲05/23/2012年下午3時15分00秒 – Kiranshell

+0

@Kiranshell,賈斯汀給你一個基於您指定的日期/時間的示例。如果你想改變它不同的時間,只需改變它。賈斯汀的例子使用24小時制,所以你可以使用'05/23/2012 15:15:00'。 –

+0

@Jeffrey Kemp,'05/23/2012 15:15:00'不起作用,它拋出「ORA-01849:小時必須在1到12之間」。賈斯汀的第二個解決方案完美運作。 – Kiranshell