|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1729867
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2019/1/24 14:55 |
- 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 / 程式設計俱樂部
|
|
討論串
|