`
longgangbai
  • 浏览: 7349163 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle常用的函数to_date()用法

阅读更多

1、采用“yyyy-MM-dd HH:mm:ssORA 01810 格式作为格式进行转换的弊端

在使用Oracle的to_date函数来做日期转换时,许多程序员会下意识的采用“yyyy-MM-dd HH:mm:ss”格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。

示例:

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;

原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;

2、此外,我们还需要以24小时的形式显示出要用的HH24

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟

select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份

 

 

在实际的工作和学习中,为了分页或查询性能的需要,往往需要从数据库查询固定行数的记录,不同的数据库有不同的SQL语句来完成,在Oracle数据库中,我们可以用下面的方法来实现,假设要从一个有百万条记录的表中每次取10万条进行处理,可以按下面步骤进行:

1、创建表

Drop TABLE VEHICLE;

Create TABLE VEHICLE (

MAKE VARCHAR2(256) NOT NULL,

MODEL VARCHAR2(256),

REGISTRATION_NO NUMBER(15) NOT NULL primary key,

AGE NUMBER(2,1) NOT NULL,

CATEGORY VARCHAR(1) NOT NULL,

MILAGE NUMBER(15,2) NOT NULL,

LAST_SERVICE_DATE DATE NOT NULL

);

 

2、插入数据

可以用入下存储过程进行批量数据的插入,

create or replace PROCEDURE INSERT_APPOINTED_RECORDS

( startNum IN NUMBER, endNum IN NUMBER) AS

i number:=startNum;

j number:=endNum;

BEGIN

dbms_output.put_line(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') );

While i<=j Loop

INSERT INTO

VEHICLE (REGISTRATION_NO,MAKE,MODEL,AGE,CATEGORY,MILAGE,LAST_SERVICE_DATE)

VALUES

(i,'test','test',3,'A',1000,SYSDATE);

i:=i+1;

End Loop;

dbms_output.put_line(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') );

END INSERT_APPOINTED_RECORDS;

3、查询固定行数的记录

在Oracle数据库中需要结合ROWNUM来完成,可以用如下方法来实现,如要取按ROWID排序的5000到10000之间的记录

SELECT * FROM vehicle WHERE ROWNUM<10001 minus SELECT * FROM vehicle WHERE ROWNUM<5001;

如果需要按照某字段排序来查询,如,按制造商Make来排序,就需要用到子查询,性能就会有明显的影响

SELECT * from (SELECT * FROM vehicle order by make) WHERE ROWNUM<10001 minus SELECT * from (SELECT * FROM vehicle order by make) WHERE ROWNUM<5001;

由于你对ROWNUM不能用像 Where rownum >10 and rownum <100这样的语法,所以有点别扭,但是你可以通过以下方式来用:

select * from (select rownum r,REGISTRATION_NO,MAKE,MODEL,AGE,CATEGORY,MILAGE,LAST_SERVICE_DATE from vehicle) where r >=5000 and r<=10000;

或者

select * from (select rownum r,REGISTRATION_NO,MAKE,MODEL,AGE,CATEGORY,MILAGE,LAST_SERVICE_DATE from vehicle) where r between 5000 and 10000;

这样就比较合符习惯了,不能用如下语句:

select * from (select * from vehicle order by make) where rownum between 5000 and 10000;

或者

select * from (select * from vehicle order by make) where rownum >= 5000 and rownum<=10000;

 

分享到:
评论

相关推荐

    Oracle 中的 TO_DATE 和 TO_CHAR 函数

    ### Oracle中的TO_DATE和TO_...以上就是Oracle数据库中`TO_DATE`和`TO_CHAR`函数的基本使用方法及相关知识点的详细介绍。这两个函数在处理日期和时间数据时非常有用,能够帮助开发者和DBA更加灵活地操作和展示数据。

    ORACLE 关于时间函数to_date 的运用

    在Oracle数据库中,时间函数是处理日期和时间数据的...掌握`TO_DATE`函数的用法对于进行复杂的时间数据分析和报表生成具有重要意义。在实际应用中,还需注意时区和本地化设置的影响,以确保日期数据的准确性和一致性。

    Oracle to_date() 用法细节.txt

    本文将详细介绍 `to_date()` 的使用方法、参数格式以及常见问题解决方法。 #### 二、基本语法与格式 `to_date()` 函数的基本语法如下: ```sql TO_DATE (expression, format_mask) ``` 其中: - `expression`: ...

    Oracle中TO_DATE TO_CHAR格式

    Oracle 中 TO_DATE TO_CHAR 格式详解 ...TO_DATE 和 TO_CHAR 函数是 Oracle 中两个非常重要的日期时间处理函数,通过了解它们的属性和使用方法,我们可以更好地处理日期时间数据,满足不同的应用需求。

    Oracle的to_date函数.doc

    在使用 to_date 函数时,需要指定日期字符串的格式,以便 Oracle 能够正确地解析日期字符串。日期格式参数是用来指定日期字符串的格式的,它由一个或多个日期元素组成,每个日期元素都有其特定的含义。 以下是 ...

    TO_DATE用法详解.doc

    TO_DATE 函数用法详解 TO_DATE 函数是 Oracle 中的一个重要函数,它用于将字符类型的日期字符串转换为日期类型的数据。该函数的语法为:TO_DATE(date_string, format_string),其中 date_string 是要转换的日期字符...

    讲述Oracle中的to_date参数含义

    Oracle数据库中的`to_date`函数是用于将字符串转换为日期数据类型的函数,它在处理日期和时间相关的操作时非常常用。`to_date`的主要参数是一个包含日期信息的字符串,以及一个可选的日期格式模型,用于指定输入字符...

    Oracle to_date()函数的用法介绍

    在Oracle数据库中,Oracle to_date()函数是我们经常使用的函数,下面就为您详细介绍Oracle to_date()函数的用法,希望可以对您有所启迪。 to_date()与24小时制表示法及mm分钟的显示: 一、在使用Oracle的to_date函数...

    Oracle中TO_DATE、TO_CHAR,Oracle函数大全

    总之,Oracle的`TO_DATE` 和 `TO_CHAR` 函数是数据库操作中必不可少的部分,理解并熟练使用它们以及其他的Oracle函数,可以极大地提高数据处理的效率和准确性。通过不断学习和实践,可以深入掌握这些函数的用法,...

    oracle to_date 函数详解

    oracle to_date 函数详解,详细讲解了to_date函数的最详细用法

    oracle-sql基本语法例子,包括to_date,to_char

    总结的sql语法,其中包括一些函数的用法,to_date,to_char,to_number等等函数

    oracle中to_date详细用法示例(oracle日期格式转换)

    Oracle中的`TO_DATE`函数是数据库操作中非常重要的一个日期转换工具,主要用于将字符串转换成日期类型。在Oracle SQL中,日期和时间处理是数据库管理的关键部分,`TO_DATE`函数提供了灵活的方式来处理日期和时间数据...

    oracle函数大全(分类显示).zip_Oracle 函数分类_oracle_oracle函数分类_oracle函数查阅用文档

    通过这份"oracle函数大全(分类显示).chm"文档,你可以详细了解到每个函数的具体用法、参数和返回值,从而更好地理解和应用到实际的数据库操作中。随着对Oracle的理解加深,你会发现这些函数能极大地提高你的数据库...

    Oracle 中的 TO-DATE 和 TO-CHAR 函数.docx

    本文将详细介绍 TO_DATE 和 TO_CHAR 函数的使用方法、格式化规则和实践应用。 一、TO_DATE 函数 TO_DATE 函数是将字符类型的日期字符串转换为 DATE 类型的日期对象。其基本语法为: `TO_DATE( string1, [ format_...

    c#中oracle的to_date函数使用方法

    在C#中操作Oracle的日期字段时,合理使用`TO_DATE`函数可以有效地处理日期和时间数据,使其符合Oracle数据库的要求。在传递参数时,务必注意日期格式的正确性,以及C#中的日期对象如何转换为Oracle可理解的字符串...

    Oracle to_char(date)用法总结

    Oracle to_char(date) 用法总结 Oracle 的数据类型转换是指将一种数据类型转换为另一种数据类型,以满足不同的应用场景。在 Oracle 中,数据类型转换可以分为显式数据类型转换和隐式数据类型转换。隐式数据类型转换...

Global site tag (gtag.js) - Google Analytics