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

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00166.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2019/1/24 14:55:25
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 / 程式設計俱樂部
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

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