TO_DATE使用详解

时常使用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')

具体使用什麽样的格式就要看我们的需要和使用习惯了,但这并不影响结果

@ 2006-05-20 08:00

Comments:

Sharing your thoughts: