茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729867 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_210.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]Oracle Conver Date to String

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15773
[轉貼]Oracle 日期問題 是包含或小於?
Oracle 日期問題 是包含或小於?

Oracle 日期問題 是包含或小於?
以下的命令只求出2月1日至17日的資料,18日的資料則不包含
是否是oracle 日期屬性就是這樣?
SELECT *
FROM EPM.R01
WHERE R01_02 Between to_date('2005/02/01','yyyy/mm/dd') and to_date('2005/02/18','yyyy/mm/dd')
order by 1


--------------------------------------------------------------------------------

Oracle 裡,日期的資料型態包含了時間,所以如果你要取出 2005/2/18 的資料,則應該下
SELECT *
FROM EPM.R01
WHERE R01_02 Between to_date('2005/02/01','yyyy/mm/dd') and to_date('2005/02/18 23:59:59','yyyy/mm/dd HH:mi:ss')
order by 1

不然系統會自動在後面加上 00:00:00,這樣當然不會取出 2/18 當天的資料。

--------------------------------------------------------------------------------

>Oracle 日期問題 是包含或小於?

BETWEEN AND 是包含的。

>以下的命令只求出2月1日至17日的資料,18日的資料則不包含
>是否是oracle 日期屬性就是這樣?
>
>SELECT *
>FROM EPM.R01
>WHERE R01_02 Between to_date(''2005/02/01'',''yyyy/mm/dd'') and to_date(''2005/02/18'',''yyyy/mm/dd'')
>order by 1

三種方法:
1) Oscar 大大的 23:59:59 方法
2) 1 + to_date(''2005/02/18'',''yyyy/mm/dd'')
3) TRUNC(R01_02) BETWEEN ... AND ...

我個人比較喜歡第 2 種。
留意第 2 和 3 會包含 2005/02/18 00:00:00 這一秒(如果用 BETWEEN AND 的話)

寫錯了,應該是第二種方法會包含 2005/02/19 00:00:00 這一秒,
00:00:01 就不包(如果用 BETWEEN AND 的話)。

原文出處:Oracle 日期問題 是包含或小於? / Oracle / 程式設計俱樂部
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|