時常使用to_date函數來查詢特定時間內的資料。
但每次都是用別人寫好的語句再改一下日期,一直對TO_date函數的格式不太了解。今看了oracle的書上面to_date函數講的比較好。
語法:
to_data(date&time,format)
其中第一個參數date&time是我們要查詢的具體日期和時間,比如:2006年5月21日。但是這個時間也分為很多種精度的,比如:
2006年5月21日
2006年5月21日17:24
2006年5月21日17:34分55秒
這個精度要根據實際情況來定。
另外一個參數format決定的日期的表示方法,比如:
2006年5月21日 可以表示為:060521、20060521、2006FEB21等等
而他們對應的format為
060521 YYMMDD
20060521 YYYYMMDD
2006FEB21 YYYYMONDD
示例:
select * from book where intime=to_date('2003/02/17/17/53/55','YYYY/MM/DD/HH24/MI/SS')
上面的語句是查詢:2003年8月17日下午5點53分55秒,入庫的書本。
其實用下面的寫法也是可以的
select * from book where intime=to_date('20030217175355','YYYYMMDDHH24MISS')
select * from book where intime=to_date
('2003-02-17-17-53-55','YYYY-MM-DD-HH24/-I-SS')
中間的連字符“/”、“:”或是“-”,並不影響表達,只是為了更加容易看清楚。
表示年份有以下幾種格式,及這種格式對應的表達方法:
2003年為例
YYYY 2003
YYY 003
YY 03
月份表示格式及表達方法:
二月分為例
MM 08
RM IIX(羅馬數字)
MONTH february
MON feb
日期的格式及表達方法:
17號為例
DDD 76 2月的17日在本年度(不是閏年的情況)是多少天
DD 17 在本月中是號(17號)
D 在這一個星期是哪天
星期的格式和表示方法:
星期一為例
DAY monday 全名顯示
DY mon 縮寫
小時的格式和表示方法:
HH24 18 二十四小時制
分鐘的格式和表示方法:
MI 32 該小時32分鐘
秒的表示方法
SS 28 該分鐘28秒
既然知道格式和表示方法就簡單了,比如我想知道在
2005年12月15日18時21分08秒 至
2006年 2月23日19時00分00秒 共入庫多少書本我們就可以用以下語句
SELECT SUM(QTY) FROM BOOK WHERE INTIME BETWEEN TO_DATE('2005/12/15-18:21:08','YYYY/MM/DD-HH24:MI:SS') AND TO_DATE('2006/02/23-19:00:00','YYYY/MM/DD-HH24:MI:SS')
具體使用什麼樣的格式就要看我們的需要和使用習慣了,但這並不影響結果
阅读(3134) | 评论(2) | 转发(0) |