Oracle中的日期間查詢

2022-01-10 17:58:05 字數 1379 閱讀 5834

在oracle中,如果要進行日期間的查詢需要用到oracle的內建函式to_date()。

1、oracle日期查詢的邊界問題

此外,日期間的查詢還涉及乙個邊界問題,因為每個人的思維方式不同,因此寫出的語句都不同。

比如如果要查詢2023年7月1日到2023年7月6日的資料:

1

select

*from

test

2where intime >= to_date('

2010-07-01

', '

yyyy-mm-dd');

3and intime < to_date('

2010-07-06

', '

yyyy-mm-dd

') +

1;

這時候的查詢語句可以查到7月1日到7月6日的資料,並且是包括了7月1日和7月6日這兩天當天的資料的。

但如果你忘記寫了第2行的等於號了,那麼如果一條記錄的時間剛好是7月1日凌晨00:00分插入的,那麼這條資料也就查不出來。

但實際上這條資料是7月1日的資料,應該被查詢出來。

而在第3行中,如果你忘記在後邊+1,那麼程式就認為你查詢的是比「2010-07-06 00:00:00」這個時間小的記錄,那麼7月6號當天的是資料就查不出來了。

所以為了避免這種情況的發生,如果查詢的日期是包含邊界的話,那麼:開始日期符號要等於,結束日期要+1。

2、oracle的時間格式化字串的格式

如果你想要查詢7月5日中午12點錢的資料,你應該這樣寫:

1

select

*from

test

2where intime < to_date('

2014-07-05 12:00:00

', '

yyyy-mm-dd hh24:mi:ss

');

因為oracle是不區分大小寫的,所以如果你在第2行的to_date函式中把日期格式寫成:'yyyy-mm-dd hh24:mm:ss',oracle會報錯:格式**出現兩次。

因為對於oracle來說,mm與mm是一樣的。所以,oracle中日期的格式化字串應該是這樣的:「yyyy-mm-dd hh24:mi:ss」。

其中hh24表示24小時制表示,如果要換成12小時制,則換成「hh12」即可。

而在mysql的sql查詢中,日期格式是這樣寫的「yyyy-mm-dd hh:mm:ss",其中大寫的mm表示月、小寫的mm表示分鐘。

而大寫的hh表示用24小時制表示,如果寫成hh則表示用12小時制表示。

oracle 日期查詢

1.string hql select substr to char create time,yyyy mm dd hh24 mm ss 1,10 count createtime from sitebean where to char createtime,yyyy mm dd to char t...

Oracle 日期查詢

例如 select from c where cdate to date 2010 10 14 14 00 00 yyyy mm dd hh24 mi ss select from mytable where to char install date,yyyymmdd 20050101 select...

oracle 查詢日期

查詢乙個季度的第一天 select trunc sysdate,q from dual 查詢乙個季度的最後一天 select add months trunc to date 2010 02 01 yyyy mm dd q 3 1 from dual 查詢當前日期以前3個小時的資料 select s...