Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家提供关于数据库教程相关的教程网站知识。

ORACLE单行函数与多行函数之五:转换函数示例LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

将十进制的数转换为十六进制的数请使用to_char函数。,网站数据库中16进制的表达是按照字符串来描述的,所以将十进制的数转换为十六进制的数使用to_char函数,   a   2a,SQL> select to_number('1999') year from dual;      YEAR ---------      1999 将十六进制的数转换为十进制的数请使用to_num,更多在http://blog.csdn.net/q947817003/article/details/13015993,2013/10/25 19:40:31,下面例子引用引烈讲义:,####################################################################################################,.LEAST  返回一组表达式中的最小值 SQL> select greatest('AA','AB','AC') from dual; GR -- AC SQL> select greatest(',ROWIDTOChAR     将ROWID数据类型转换为字符类型 BYS@bys1>select rowid,rowidtochar(rowid),chartorowid(rowidtochar(r,将源字符串 sset从一个语言字符集转换到另一个目的dset字符集 SQL> select convert('strutz','we8hp','f7dec') "conversion" from du,DUMP函数以fmt指定的内部数字格式返回一个VARChAR2类型的值 SQL> select global_name,dump(global_name,1017,8,5) dump_string f,5.BFILENAME(dir,file) 指定一个外部二进制网站网站文件 SQL>insert into file_tb1 values(bfilename('lob_dir1','image1.gif'),7.EMPTY_BLOB()和EMPTY_CLOB() 这两个函数都是用来对大数据类型字段进行初始化操作办法的函数LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

实验环境

BYS@bys1>select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';
PARAMETER            VALUE
-------------------- ------------------------------
NLS_DATE_FORMAT      yyyy/mm/dd hh24:mi:ssLZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1>show parameter nls_lang
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------

nls_language                         string      AMERICANLZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

 LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

1.直接使用SYSDATE加减数字来操作办法日期

日期 或-1,都代表加减一天的时间;而假如如果是一小时或几分钟这种,可以用天/小时这种具体相关方法。LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

如下面数据库语句,1小时是1/24;5分钟是1/24/12。86400:1天=24小时=24*60*60=86400秒LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1>select sysdate 365, sysdate-1 ,sysdate-3, sysdate-1/24 ,sysdate-1/24/12 from dual;
SYSDATE 365         SYSDATE-1           SYSDATE-3           SYSDATE-1/24        SYSDATE-1/24/12
------------------- ------------------- ------------------- ------------------- -------------------

2014/11/02 19:26:15 2013/11/01 19:26:152013/10/30 19:26:15 2013/11/0218:26:15 2013/11/0219:21:15LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

2.TIMESTAMP 记录了年、月、日、时、分、秒和纳秒

SYSTIMESTAMP返回的是TIMESTAMP WITh TIME ZONE 类型的数据。 08:00表示当前是东八区。
BYS@bys1>select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
02-NOV-13 09.08.04.390741 PM 08:00
timestamp的显示格式不同于SYSDATE,要重新指定。
BYS@bys1>alter session set nls_timestamp_format='yyyy-mm-dd hh24:mi:ss.ff';
Session altered.

BYS@bys1>select systimestamp from dual;
SYSTIMESTAMP
---------------------------------------------------------------------------
02-NOV-13 09.11.19.258161 PM 08:00

表示TIMESTAMP的具体相关方法:
–to_timestamp('2013-02-09 23:59:59.000','yyyy-mm-dd hh24:mi:ss.ff')
–timestamp '2013-04-05 13:48:00.123456789'
–to_timestamp中的分隔符可以更换, timestamp中的日期分隔符必须是-,时间必须是:,秒后面必须跟上.
–timestamp可以精确表示到毫秒、微秒甚至纳秒级别
转换时未指定值时的默认值:年:同SYSDATE里的年;月:同SYSDATE里的月;日:1号;时分秒和纳秒:均为0
BYS@bys1>col a3 for a30
BYS@bys1>col a2 for a30
BYS@bys1>col a1 for a30
BYS@bys1>select to_timestamp('05 13','YY hh24') as a1,to_timestamp('05 13','mm mi') as a2,to_timestamp('05 13','dd ss') as a3 from dual;
A1                             A2                             A3
------------------------------ ------------------------------ ------------------------------
2005-11-01 13:00:00.000000000  2013-05-01 00:13:00.000000000  2013-11-05 00:00:13.000000000
关于微秒的指定相关方式:FF5表示给的时间戳可以有不超过5位的微秒。假如如果时间戳微秒有3位,指定转换为FF2,则报错。LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

同时在秒后最多只能指定9位。
BYS@bys1>select to_timestamp('05 13:48:22.778','DD hh24:MI:SS.FF5') from dual;
TO_TIMESTAMP('0513:48:22.778','DDhh24:MI:SS.FF5')
---------------------------------------------------------------------------
2013-11-05 13:48:22.778000000LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

要注意LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1>select to_timestamp('05 13:48:22.778','DD hh24:MI:SS.FF2') from dual;
select to_timestamp('05 13:48:22.778','DD hh24:MI:SS.FF2') from dual
                    *
ERROR at line 1:
ORA-01880: the fractional seconds must be between 0 and 999999999

BYS@bys1>select to_timestamp('05 13:48:22.123456789','DD hh24:MI:SS.FF9') from dual;
TO_TIMESTAMP('0513:48:22.123456789','DDhh24:MI:SS.FF9')
---------------------------------------------------------------------------
2013-11-05 13:48:22.123456789
BYS@bys1>select to_timestamp('05 13:48:22.1234567890','DD hh24:MI:SS.FF9') from dual;
select to_timestamp('05 13:48:22.1234567890','DD hh24:MI:SS.FF9') from dual
                    *
ERROR at line 1:
ORA-01830: date format picture ends before converting entire input string
BYS@bys1>select to_timestamp('05 13:48:22.1234567890','DD hh24:MI:SS.FF10') from dual;
select to_timestamp('05 13:48:22.1234567890','DD hh24:MI:SS.FF10') from dual
                                             *
ERROR at line 1:
ORA-01821: date format not recognizedLZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

3.date函数只可以表示日期,不可以表示时间。在下面4中有应用示例。

默认值:年:同SYSDATE里的年;月:同SYSDATE里的月;日:1号;时分秒:均为0LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

4.判断指定日期是否是某一天的。to_date及date中假如如果只指定日期未指定时间,默认是0点0分0秒。即前一天23:59:59的下一秒。

注意BETWEEN AND 相当于大于等于和小于等于。所以属于某一天,严格来说应该是从当天0点的0秒到 当天23:59:59秒。1天除以86400即1秒LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1> select 'TRUE' from dual where to_date('2013-11-02 21:48:22','YYYY-MM-DD hh24:MI:SS') between date'2013-11-01' and date'2013-11-06'-1/86400;

'TRU
----
TRUELZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1>select 'TRUE' from dual where to_date('2013/11/02 21:45:43','YYYY-MM-DD hh24:MI:SS') between to_date('2013-11-02','yyyy-mm-dd') and  to_date('2013-11-03','yyyy-mm-dd hh24:mi:ss')-1/86400;

'TRU
----
TRUE
也可以用to_date对日期进行显式转换。
select 'TRUE' from dual where to_date('2013/11/02 21:45:43','YYYY-MM-DD hh24:MI:SS') between to_date('2013-11-02','yyyy-mm-dd') and  to_date('2013-11-03','yyyy-mm-dd hh24:mi:ss')-1/86400;
 
'TRUE'
------
TRUELZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

注意BETWEEN AND 相当于大于等于和小于等于LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1> select 'TRUE' from dual where to_date('2013/11/02 21:45:43','YYYY-MM-DD hh24:MI:SS') >= date'2013-11-02' and to_date('2013/11/02 21:45:43','YYYY-MM-DD hh24:MI:SS') <= date'2013-11-03'-1/86400;
'TRU
----
TRUE
其实也可以用小于11月3号来表示小于等于11月2号的23:59:59秒。LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

BYS@bys1> select 'TRUE' from dual where to_date('2013/11/02 23:59:59','YYYY-MM-DD hh24:MI:SS') >= date'2013-11-02' and to_date('2013/11/02 23:59:59','YYYY-MM-DD hh24:MI:SS') < date'2013-11-03';
'TRU
----
TRUE
 LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

5.MONThS_BETWEEN(a,b):表示a和b两个日期的月份之差,是a-b,假如如果a日期比b晚,即比b大,则为正数;反之,为负数。

BYS@bys1>Select EMPNO,hIREDATE,MONThS_BETWEEN(Sysdate,hIREDATE)/12 dday,sysdate From EMP where rownum<3;
     EMPNO hIREDATE                  DDAY SYSDATE
---------- ------------------- ---------- -------------------
      7369 1980/12/17 00:00:00  32.8784294  2013/11/02 18:37:05
      7499 1981/02/20 00:00:00 32.7036983 2013/11/02 18:37:05
BYS@bys1>select  months_between (sysdate,to_date('2011/11/11 11:11:11','yyyy-mm-dd hh24:mi:ss')) as dday from dual;
      DDAY
----------
23.7196307
BYS@bys1>select months_between(to_date('2011/11/11 11:11:11','yyyy-mm-dd hh24:mi:ss'),sysdate) as dday from dual;
      DDAY
----------
-23.719639

6.ADD_MONThS:表示给指定的日期加一个月数,即N个月后的日期。假如如果当前日期加上指定月数超过一年,则年份也自动增加。

BYS@bys1>select add_months(sysdate,1),add_months(sysdate,4) from dual;
ADD_MONThS(SYSDATE, ADD_MONThS(SYSDATE,
------------------- -------------------

2013/12/02 18:39:23 2014/03/02 18:39:23LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

 LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

7.NEXT_DAY:表示以当前时间为基准,下一个"目标日"的日期

BYS@bys1>select  next_day(sysdate,'sunday') ,next_day(sysdate,'tuesday') from dual;
NEXT_DAY(SYSDATE,'S NEXT_DAY(SYSDATE,'T
------------------- -------------------

2013/11/03 19:34:20 2013/11/05 19:34:20LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

 LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

8.LAST_DAY:计算当前日期的最后一天,即当月最后一天。

BYS@bys1>select last_day(sysdate) from dual;
LAST_DAY(SYSDATE)
-------------------

2013/11/30 18:43:16LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

 LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

9.使用ROUND:对日期进行四舍五入

只能对年、月、日、时、分进行四舍五入;不能操作办法秒。
BYS@bys1>select round(sysdate,'yy') as year,round(sysdate,'mm') as month,round(sysdate,'dd') as day,round(sysdate,'hh') as hour,round(sysdate,'hh24') as hour24,round(sysdate,'mi') as minutes  from dual;
YEAR                MONTh               DAY                 hOUR                hOUR24              MINUTES
------------------- ------------------- ------------------- ------------------- ------------------- -------------------
2014/01/01 00:00:00 2013/11/01 00:00:00 2013/11/03 00:00:00 2013/11/02 19:00:00 2013/11/02 19:00:00 2013/11/02 18:59:00
BYS@bys1> select round(sysdate,'ss') as sss from dual;
 select round(sysdate,'ss') as sss from dual
                      *
ERROR at line 1:

ORA-01899: bad precision specifierLZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

 LZlAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

10.使用TRUNC:对日期进行截取

BYS@bys1>set linesize 200
BYS@bys1>select trunc(sysdate,'yy') as year,trunc(sysdate,'mm') as month,trunc(sysdate,'dd') as day,trunc(sysdate,'hh') as hour,trunc(sysdate,'hh24') as hour24,trunc(sysdate,'mi') as minutes  from dual;
YEAR                MONTh               DAY                 hOUR                hOUR24              MINUTES
------------------- ------------------- ------------------- ------------------- ------------------- -------------------
2013/01/01 00:00:00 2013/11/01 00:00:00 2013/11/02 00:00:00 2013/11/02 18:00:00 2013/11/02 18:00:00 2013/11/02 18:52:00
只能截取年、月、日、时、分;不能截取秒。
BYS@bys1> select trunc(sysdate,'ss') as sss from dual;
 select trunc(sysdate,'ss') as sss from dual
                      *
ERROR at line 1:
ORA-01899: bad precision specifier 关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。

标签:

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市