2011-08-11 82 views
0

日期/時間目前在我的Oracle表,我有,如果我的程序條件比較甲骨文

if TO_CHAR(updatetime, 'DD-MON-YYYY HH:MI:SS') != '01-JAN-1900 00:00:01' then 

假設從Oracle表中的值錄入以下是「01-JAN-1900 12:00: 01 AM「,我的條件是真的還是假的?

我問的原因是因爲我不確定TO_CHAR格式轉換爲什麼格式。表格中的值是12小時制格式,而條件則與24小時格式相比較。

這是我第一週使用oracle sql。

謝謝!

回答

5

@Tony Andrews說了些什麼,但是如果您將它與包含24小時制時鐘值的字符串進行比較,您可能希望將to_char轉換爲24小時制。像這樣將HH更改爲HH24:

if TO_CHAR(updatetime, 'DD-MON-YYYY HH24:MI:SS') != '01-JAN-1900 00:00:01' then 
+0

這是什麼區別,因爲託尼提到的7個數值?由於我是oracle新手,你能解釋一下變量updatetime如何獲得它的值嗎?它是直接從數據庫中查詢(因此是7個數值)還是從表格視圖中獲取值?希望我有任何意義.. – Kyle

+1

更新時間是@Tony說的。但是你並沒有將你的字符串與updatetime進行比較,而是將它與將updatetime轉換爲你定義的格式的結果相比較。所以你定義的格式需要匹配你比較的字符串的格式.. – StevieG

+0

謝謝!@ :) – Kyle

3

Oracle DATE列不將日期保存爲格式化的字符串,它在(內部)保存爲7個數值:世紀,年,月,日,小時,分鐘,秒。因此,您在TO_CHAR中使用的格式並不重要。

+0

謝謝您的澄清! – Kyle