`
xp9800
  • 浏览: 36354 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

ORACLE 日期类格式化、操作日期类

阅读更多
(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
mark               21-08-2003 12:00:00
mark1              21-08-2003 12:00:00

已选择2行
注意:5和6中的不同,时间到秒时,JSP页面中显示时多出了". 0"
7、在SQL*Plus Worksheet中执行下列SQL语句
select name,to_char(enrolldate,'DD-MM-YYYY HH24:MI:SS') from student;
得到的记录结果如下:注意date类型字段中显示了日期,时间
NAME                 TO_CHAR(ENROLLDATE,'DD-MM-YYYYHH24:MI:

mark               18-08-2003 17:40:20
mark1              21-08-2003 00:00:00
mark2              21-08-2003 00:00:00

已选择3行。
注意:6和7中的SELECT中的"HH:MI:SS"和"HH24:MI:SS"两者的不同是"HH"为小时制,值的范围为0-12;"HH24"为24小时制,值的范围为0-23。
   看下列例子:
①insert into student values('南太里',to_date('08-19-2003
13:54:05','MM-DD-YYYY HH24:MI:SS'));
ORACLE中的记录结果为:
NAME                   enrolldate
南太里                19-八月 -2003 01:54:05 PM
②insert into student values('南太里2',to_date('08-19-2003
13:54:05','MM-DD-YYYY HH:MI:SS'));//插入错误
错误提示为:
insert into student values('南太里2',to_date('08-19-2003 13:54:05','MM-DD
                                                          *
ERROR 位于第 1 行:
ORA-01849: 小时值必须介于 1 和 12 之间
即应用"HH"时,不能应用"13:54:05",而应改为"01:54:05"
正确语句如下:
insert into student values('南太里2',to_date('08-19-2003
01:54:05','MM-DD-YYYY HH:MI:SS'));
ORACLE中的记录结果为:
NAME                   enrolldate

南太里2              19-八月 -2003 01:54:05 AM
注意上述两种方式得出的结果一种为PM,另一种为AM。
为了提高正确性,建议都是用地一种方式"HH24"
8、但在JSP程序中同样执行select name,to_char(enrolldate,'DD-MM-YYYY HH:MI:SS') from student
显示结果见下图。(其结果与在SQL*Plus Worksheet中执行下列SQL语句
select name,to_char(enrolldate,'DD-MM-YYYY HH:MI:SS') from student;相同)
9、在SQL*Plus Worksheet中执行下列SQL语句
select name,to_char(enrolldate,'month dd,yyyy HH24:MI:SS') from student;
得到的记录结果如下:注意date类型字段中显示了日期,时间
NAME                 TO_CHAR(ENROLLDATE,'MONTHDD,YYYYHH24:MI:SS')

mark               8月  18,2003 17:40:20
mark1              8月  21,2003 00:00:00
mark2              8月  21,2003 00:00:00

已选择3行。
10、to_char()函数,'DD-MM-YYYY'格式及'MM-DD-YYYY'格式和'month dd,yyyy'格式的不同
'DD-MM-YYYY'格式:21-08-2003
'month dd,yyyy'格式:8月  21,2003

11、注意:在日期和时间格式中非常容易混淆的是月份和秒的格式(即MM和MI)
在SQLPlus*Worksheet中执行下列语句,不报错。
insert into student values('王嘉',to_date('08:05','HH24:MM'));//08被认为是小时,05被认为是月份。
commit;
在表编辑器中查看:实际插入值为
NAME                 ENROLLDATE
王嘉    01-五月 -2003 08:00:00 AM

select name,to_char(enrolldate,'DD-MM-YYYY HH24:MI:SS')enrolldate from
student where name='王嘉';

NAME                 ENROLLDATE
王嘉                 01-05-2003 08:00:00

已选择 1 行。

insert into student values('汪嘉2',to_date('08-19-2003
13:54:05','MM-DD-YYYY HH24:MI:SS'));


12、使用Oracle的date数据类型的另一个优点是:它支持日期的运算。可以对已经存在的

日期加上或减去若干天,例如:
insert into student values('熊',sysdate+7);
分享到:
评论

相关推荐

    oracle设置日期格式

    在开始之前,我们先来了解一些关于Oracle日期格式的基础知识: 1. **NLS_DATE_FORMAT**:这是一个非常重要的环境变量,用于控制日期在查询结果中的显示格式。 2. **日期格式字符串**:由一系列字符组成,用来定义...

    从oracle数据库取出日期按格式显示

    在代码示例中,使用了Java语言中的`SimpleDateFormat`类来实现日期格式化。`SimpleDateFormat`允许开发者自定义日期时间的显示格式,从而满足不同场景的需求。以下是对示例代码的详细解释: ```java java.text....

    oracle格式化查看json数据

    总结来说,Oracle提供了全面的JSON支持,包括数据类型、函数、操作符和PL/SQL包,以及客户端工具的增强,使我们能够方便地在数据库中存储、查询和格式化查看JSON数据。无论你是开发人员还是数据库管理员,理解并掌握...

    Oracle时间日期操作

    Oracle 时间日期操作 Oracle 时间日期操作是 Oracle 数据库中的一种常用的操作类型,它可以对数据库中的日期和时间进行各种处理和计算。以下是 Oracle 时间日期操作的一些常见知识点: 1. 获取当前日期和时间:...

    oracle日期操作举例

    #### 二、日期格式化 在处理日期时,经常需要将日期转换为特定的格式,Oracle提供了多种格式化选项。 **1. 格式化当前日期** ```sql SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL; ``` ...

    oracle常用格式化输出

    也可以使用 TO_CHAR 函数来格式化日期: ```sql SELECT TO_CHAR(SYSDATE, 'yyyy.mm.dd hh24:mi:ss') FROM DUAL; ``` 结果: ``` TO_CHAR(SYSDATE,'YYYY.MM.DD HH24:MI:SS') ------------------------------------...

    oracle日期查询相关

    #### 二、使用`TO_CHAR`函数进行日期格式化 `TO_CHAR`函数可以用来将日期转换为字符串形式,并且可以根据不同的需求定制日期显示的格式。这对于数据展示或日志记录等场景非常有用。 ##### 1. 常用的日期格式符 - ...

    oracle数据库中日期格式化.docx

    这些例子展示了不同的日期格式化选项,如`'yyyy-mm-dd hh24:mi:ss'`,包含年、月、日、小时(24小时制)、分钟和秒。标签"cs"可能是指计算机科学,这表明这些操作在编程或数据库查询上下文中常见。 接下来,我们来...

    oracle数据库中日期格式化.pdf

    Oracle提供了一系列的函数来帮助我们进行日期格式化、转换以及日期时间间隔的操作。以下是对这些知识点的详细解释: 1. **字符到日期操作**: 使用`TO_DATE`函数可以将字符串转换为日期类型。在Java中,我们可以...

    Oracle日期时间(DateTime)操作

    本文将深入解析Oracle日期时间操作的一些核心知识点,涵盖基本的日期时间函数使用、日期时间的格式化、以及一些高级的日期时间计算技巧。 ### 一、基础日期时间函数 #### 1. SYSDATE `SYSDATE`是Oracle系统中获取...

    Oracle获取系统时间及格式化

    在 Oracle 中,日期和时间格式化可以使用以下格式: * 年:y 表示年的最后一位、yy 表示年的最后 2 位、yyy 表示年的最后 3 位、yyyy 用 4 位数表示年 * 月:mm 用 2 位数字表示月、mon 用简写形式、month 用全称 *...

    Oracle服务器端日期时间格式设置

    下面是一些常用的日期格式化查询示例: - 查询特定日期对应的星期名称: ``` SELECT TO_CHAR(TO_DATE('2002-08-26', 'YYYY-MM-DD'), 'DAY') FROM DUAL; ``` - 查询当前日期对应的星期名称: ``` SELECT TO_...

    Oracle中日期格式字段处理.docx

    Oracle 中的日期格式字段处理是指在 Oracle 数据库中对日期和时间的格式化、转换和计算。下面是 Oracle 中日期格式字段处理的知识点总结: 1. 日期格式字符串:在 Oracle 中,日期格式字符串是用来指定日期和时间的...

    Oracle日期格式.docx

    这些代码可以帮助我们精确地转换和格式化日期和时间,确保数据的准确性和一致性。例如,'yy'表示两位的年份,'mon'则是月份的缩写,'dd'代表月份中的天数,'hh24'则表示24小时制的小时数。 总的来说,Oracle的日期...

    Oracle中日期格式字段处理[归类].pdf

    在Oracle数据库中,日期处理是常见的操作,尤其是在软件开发中,日期格式的转换和操作至关重要。Oracle提供了多种函数来处理日期字段,主要包括`TO_DATE`和`TO_CHAR`这两个核心函数,以及一些辅助的日期计算和格式化...

    oracle日期字符串的相互转换

    ### Oracle日期与字符...这些转换不仅限于简单的日期格式化,还包括了日期的加减运算、时间戳与时区的处理等高级功能。掌握这些转换方法有助于提高SQL查询的灵活性和效率,特别是在处理涉及时间的业务逻辑时尤为关键。

    ORACLE常用日期函数集合

    除了格式化日期外,Oracle还提供了多种日期操作函数,用于进行更复杂的日期计算。 1. **截取日期** - `trunc()`: 可以根据不同的级别截取日期。例如: ```sql SELECT trunc(sysdate, 'Q') FROM dual; -- 截取到...

    oracle日期处理函数大全

    Oracle数据库在处理日期和时间数据时提供了丰富的函数和操作方式,这些函数可以帮助我们进行日期的转换、计算、格式化以及比较。以下是一些关键的Oracle日期处理函数和SQL语句的详细说明: 1. **TO_DATE函数**:...

    Oracle中的日期处理总结

    在Oracle中,经常需要对日期进行格式化处理,常见的操作包括将日期转换为字符串以及将字符串转换为日期。 1. **`TO_CHAR(date, '格式')`**:该函数用于将日期类型转换成指定格式的字符串。例如: ```sql SELECT...

Global site tag (gtag.js) - Google Analytics