在日常的工作中,你可能会遇到Oracle与VB日期类型不匹配,无法直接比较的问题。而VB中又没有专门的函数可以转换Oracle的日期,这个问题该如果解决呢?其实在Oracle的自带函数库里有一个很有用的函数TO_DATE(),它可以将日期字符串按照自己定义的格式转换为ORACLE格式的日期。示例代码如下:
声明Cn为数据库链接对象:
Dim datBirthday as Date 出生日期
Dim strSql as String SQL语句
Dim rs as ADODB.Recordset 结果集对象
DatBirthday=# 10/1/1980 #
StrSql = "SELECT NAME FROM TABGROUP_2001" _
&" WHERE BIRTHDAY= TO_DATE( "&Cstr(DatBirthday) &" , yyyy-mm-dd )
rs.open strSql
请大家注意函数后面的部分:YYYY-MM-DD,这是你提供的日期字符串的日期格式参数,Oracle将根据你的格式参数读取日期(表1中列出经常会用到的参数)。
如果要还原回来怎么办呢?没关系,我们还有另一个函数TO_CHAR(date),它与To_DATE是一对反函数,使用的格式也与TO_DATE类似,这里也举一个简单的例子,假设我们要查询系统时间,那么格式如下:
SELECT TO_CHAR(SYSDATE, DD-MON-YYYY HH24:MI:SS ) "Right Now"
From Dual;
结果显示:
Right Now
―――――――――――――――――――
16-Nov-2008 16:11:10
对照下面的参数,你会很快掌握这两个的函数应用。
日期格式参数以及含义的说明
D──一周中的星期几
DAY ──天的名字,使用空格填充到9个字符
DD──月中的第几天
DDD──年中的第几天
DY──天的简写名
IW ISO──标准的年中的第几周
IYYY ISO──标准的四位年份
YYYY──四位年份
YYY,YY,Y──年份的最后三位,两位,一位
HH──小时,按12小时计
HH24──小时,按24小时计
MI──分
SS──秒
MM──月
Mon──月份的简写
Month──月份的全名
W──该月的第几个星期
WW──年中的第几个星期

【责任编辑 陈东方】