您现在的位置:主页 > 技术中心 > 数据库技术

Oracle/JSP技术涉及日期和时间问题的处理

来源:不详 责任编辑:admin 发表时间:2013-07-01 06:07 点击:
Oracle/JSP技术涉及日期、时间问题的处理:

 

  (1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98'

 

  在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月-03'

 

  (2)转换字符串为日期

 

  使用ORACLE内部函数to_date()

 

  to_date()函数的参数是to_char()函数参数的反转。

 

  to_date(string_value , date_format)

 

  变量定义如下:

 

  string_value :为字符串直接值(字符串本身)、字符串列(数据库中定义的某个表的某列)或某字符串内部函数的返回值。

 

  date_format为合法的Oracle日期格式。

 

  下列更新语句均符合ORACLE的日期格式,更新成功:

 

  create table student (name varchar2(10) not null primary key , enrolldate date not null);//创建student表

 

  insert into student values('mark',to_date('08-21-2003','MM-DD-YYYY'));

 

  insert into student values('mark1',to_date('21-08-2003','DD-MM-YYYY'));

 

  insert into student values('mark2','21-8月-2003');

 

  insert into xiongxiaomin.student values('mark3','21-8月-03');

 

  (3)转换日期为字符串

 

  使用ORACLE内部函数to_char()

 

  to_char(date_value,date_format)

 

  变量定义如下:

 

  date_value :为日期型直接值(日期本身)、日期型列值(数据库中定义的某个表的某列)或某内部函数的返回的日期型值。

 

  date_format为合法的Oracle日期格式。

 

  选择enrolldate字段的时间部分:

 

  select (to_char(enrolldate,'HH24:MI:SS'))enrolldate from student;

 

  (4)注意:ORACLE中的date数据类型定义的列包含日期和时间。

 

  1、系统当前日期为2003年8月21日,之后执行下列语句

 

  insert into student values('mark5',to_date('09:28:03','HH:MI:SS'));//注意此种在一条记录的date类型字段中插入时间的方法,系统默认的日期为系统当前日期所在月份的第一天,因此得到的记录为

 

  Name enrolldate

 

  mark5 01-八月 -2003 09:28:03 AM

 

  2、修改系统当前日期为2003年7月21日,之后执行下列语句

 

  insert into student values('mark6',to_date('09:28:03','HH:MI:SS'));

 

  得到的记录为

 

  Name enrolldate

 

  mark6 01-七月 -2003 09:28:03 AM

 

  insert into student values('mark8',to_date('20:28:03','HH24:MI:SS'));

 

  3、同时在一条记录中插入日期和时间的方法

 

  insert into student values('mark9',to_date('21-08-2003

 

  20:28:03','DD-MM-YYYY HH24:MI:SS'));//同时在一条记录中插入日期和时间的方法

 

  insert into student values('mark',to_date('21-08-2003

 

  09:52:03','DD-MM-YYYY HH:MI:SS'));//同时在一条记录中插入日期和时间的方法

 

  注意不能使用下列方法同时插入日期和时间

 

  insert into student values('mark2','21-8月-2003'+to_date('

 

  09:52:03','HH:MI:SS'));//无效插入记录方法

 

  4、在SQL*Plus Worksheet中执行下列SQL语句

 

  select * from student;

 

  得到的记录结果如下:注意date类型字段中只显示了日期,时间并未显示

 

  NAME ENROLLDATE

 

  mark 18-8月 -03

 

  mark1 21-8月 -03

 

  mark2 21-8月 -03

 

  已选择3行。

 

  5、但在JSP程序中同样执行select * from student order by enrolldate

 

  显示结果见下图(既显示了日期,又显示了时间)

 

  JSP页面中的显示结果

 

  6、在SQL*Plus Worksheet中执行下列SQL语句

 

  select name,to_char(enrolldate,'DD-MM-YYYY HH:MI:SS') from student;

 

  得到的记录结果如下:注意date类型字段中显示了日期和时间

 

  NAME TO_CHAR(ENROLLDATE,'DD-MM-YYYYHH:MI:SS<

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片

    推荐热点

    • SQL注入攻击及其防范检测技术研究
    • Sql-Server应用程序的高级Sql注入
    • 学生信息管理系统数据库原理课程设计报告
    • 经验总结:登录和优化IBM DB2的执行速度
    • MySQL服务器的启动与停止
    • 浅谈数据库的接口技术
    • 学习数据库知识之 SQL 操作标记
    • 如何在SQL Server和MySql中创建临时表
    • 有关Sybase系统的数据同步与复制问题
    ?? - ?? - ÝřŝžľŘÝź - TAGąęÇŠ - RSSśŠÔÄ - ??
    Copyright © 2004-2024 上海卓卓网络科技有限公司