Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570091
  • 博文数量: 155
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1625
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-18 16:55
文章分类

全部博文(155)

文章存档

2009年(20)

2008年(39)

2007年(66)

2006年(29)

2005年(1)

我的朋友

分类: Oracle

2006-05-20 16:10:55

時常使用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) |
0

上一篇:面試之後

下一篇:通向成功的距離

给主人留下些什么吧!~~