1 oracle对时间格式的数据存贮 oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关,具体哪个字节表示什么,我不太清楚,请高手补充。存贮的时间包括年月日时分秒,最小精度为秒,不存贮秒以下的时间单

1 oracle对时间格式的数据存贮

oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关,具体哪个字节表示什么,我不太清

楚,请高手补充。存贮的时间包括年月日时分秒,最小精度为秒,不存贮秒以下的时间单位。因此在一些前台支持毫秒级的程序(如PB客户端程序)连接到

oracle数据库时应注意这点。查询时显示的时间格式,由会话环境决定,或者由用户定义,与数据库无关。

2 oracle时间显示形式

通常,客户端与数据库建立起连接后,oracle就会给一个缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。例

如,使用us7ascii字符集(或者是其他的英语字符集)时,缺省的时间格式显示为:28-Jan-2003,而使用zhs16gbk字符集(或其他中

文字符集)时时间格式缺省显示为:2003-1月-28.向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能

插入。查看当前会话的时间格式,可以使用以下的SQL语句:SQL> select sysdate from

dual;(只能按照此语句的结果,才能插入数据)

3 向oracle表中插入时间格式的数据

向oracle表插入时间格式的数据是一个相对来讲比较麻烦的事情,要么你严格遵从当前会话的时间格式书写你的时间值,要么使用转换函数自定义时间数据的

格式。有两个与时间相关的转换函数:to_char 和 to_date

.to_char(时间值,时间格式)函数将时间值转换为字符串形式,通常在查询中使用;to_date(字符串,时间格式)则把格式字符串转换时间值,

通常在insert

语句中使用。(呵呵,程序中没这样做,所以出错)在日期格式中,各种日期格式分量这里不作详细的讨论,请查oracle帮助文档中这两个函数的用法,或者

查一查PL/SQL编程的书,讲得很详细的。

4 如何修改会话中的日期格式

修改当前会话中的日期格式据说有三种办法,我只做过前两种办法的试验,修改glogin.sql文件的办法我没有试过,不知道是不是真的能行。下面一一解说。

(1) 在sql*plus中修改当前会话的日期格式SQL> alter

session set nls_date_format = 'yyyy-mm-dd

hh24:mi:ss';将当前会话的时间格式修改为这种格式: 2003-01-28

15:23:38,即四位年-两位月-两位日,空格,24小时的制的小时:分钟:秒。

这种修改方法,只对当前会话有效。注意,是对当前会话,而不是当前的sql*plus窗口。即如果你这样修改之后,又使用connect命令以其他用户连接到数据库或者是连接到其他的数据库,则这个日期格式就失效了,又恢复到缺省的日期格式。

(2) 修改注册表(只对windows系统)

在注册表hkey_local_machinesoftwareoraclehome0主键中增加一个字串(8i版本,9i也可以),字串名为

nls_date_format,字串的值为你希望定义的时间格式,如: yyyy-mm-dd hh24:mi:ss

,然后重新启动sql*plus.这种修改方法,对sql*plus窗口有效,即不论你打开多少个sql*plus窗口,缺省的都是这种时间格式。修改服

务器端的注册表无效,只有修改客户端的注册表才有效。

unix系统下有没有这类似的方法,我不知道,我不会用unix或者是linux系统。

(3) 修改$oracle_homesqlplusadmin目录中glogin.sql文件这种方法我没有试过,不敢乱说,以免误导大家。请了解这种方法的高手来指教。

5 日期格式的优先级

如果在一个具体的环境中,既修改了注册表,又使用alter

session命令修改了当前会话,那么哪一种修改方法有效呢?alter

session命令有效,它的优先级是最高的。即不管当前的客户端环境是什么样的,注册表修改成什么样子了,只要你使用了alter

session命令来修改了时间格式,那么就以你修改后的时间格式为准。

因此,如果直接使用sql*plus交互式查询或插入时间格式的数据,两种方法都可以用。如果使用sql文件来进行批量的插入或者是定时执行,最好在使用

时间数据前使用alter

session命令来修改会话,以保证这个sql语句的正常运行与环境无关。同样的,如果是前台的客户端程序中需要使用到时间格式的数据,最好也在使用之

前修改会话,或者使用to_char或to_date函数进行转换(强烈推荐使用转换函数),以保证程序运行与环境无关。

ADD_MONTHS(d,n) 用于返回特定日期时间d之后(或之前)的n个月所对应的日期时间(n为正整数表示之后)

CURRENT_DATE 用于返回当前会话时区所对应的日期时间

CURRENT_TIMESTAMP 用于返回当前会话时区的日期时间

DBTIMESONE 用于返回数据库所在时区

EXTRACT 用于从日期时间值中取得所需的特定数据(如取得年份,月份等) SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL

FROM_TZ 用于将特定时区的TIMESTAMP值转变为TIMESTAMP WITH TIME ZONE 值

LAST_DAY(d) 用于返回特定日期所在的月份的最后一天

LOCALTIMESTAMP 用于返回当前会话时区的日期时间

MONTHS_BETWEEN(d1,d2) 用于返回日期d1和d2之间相差的月数.如果d1小于d2返回负数.如果d1,d2和天数相同或都是月底 ,则返回整数,否则ORACLE以每月31天为准来计算结果的小数部分.

NEW_TIME(date,zone1,zone2) 用于返回时区一的日期时间所对应的时区二的日期时间

NEXT_DAY(d,char) 用于返回指定日期后的第一个工作日(由char指定)所对应的日期 select next_day(sysdate,'月曜日') from dual

NUMTODSINTERNAL(n,char_expr)用于将数字n转换为INTERVAL DAY TO SECOND 格式,其中char_expr可以是DAY,HOUR,MINUTE或SECOND

NUMTOYMINTERNAL(n,chr_expr) 用于将数字n转换为INTERVAL YEAR TO MONTH格式,其中可以是YEAR或MONTH

ROUND(d,[,fmt]) 用于返回日期时间的四舍五入结果,如果fmt指定年度,则7月1为分界线 如果fmt指定月,则16日为分界线,如果指定天,则中午12:00为分界线.

SESSIONTIMEZONE 用于返回当前会话所在的时区.

SYS_EXTRACT_UTC(datetime_whit_timezone) 用于返回特定时区时间所对应的格林威治时间

SYSDATE 返回当前系统的日期时间 SYSTIMESTAMP返回当前系统的日期时间及时区

TO_DSINTERNAL(char[,'nls_param']) 用于将符合特定日期和时间格式的字符串转变为INTERVAL DAY TO SECOND 类型

TO_TIMESTAMP(char[fmt[,'nls_param']]) 将符合特定日期和时间格式的字符串转变为TIMESTAMP类型

TO_TIMESTAMP_TZ(char[fmt[,'nls_param']]) 将符合特定日期和时间格式的字符串转变为TIMESTAMP WITH TIME ZONE类型

TO_YMINTERNAL(char) 将字符串转变为INTERVA YEAR TO MONTH类型

TRUNC(d,[fmt]) 截断日期时间数据,如果fmt指定年度,则结果为本年度的一月一日,如果指定月,则结果为本月一日

TZ_OFFSET(time_zone_name||SESSIONTIMEZONE||DBTIMEZONE) 返回特定时区与UTC(格林威治)相比的时区偏移

Oracle date format

With the functions to_char and to_date, a date format can be used. Example:

select to_char(sysdate,'DD/MM/YYYY HH24:MI:SS') from dual;

will return something like: 24/03/2006 14:36:43

Here is a list of all the formats that can be used:

Format mask

Description

CC

Century

SCC

Century BC prefixed with -

YYYY

Year with 4 numbers

SYYY

Year BC prefixed with -

IYYY

ISO Year with 4 numbers

YY

Year with 2 numbers

RR

Year with 2 numbers with Y2k compatibility

YEAR

Year in characters

SYEAR

Year in characters, BC prefixed with -

BC

BC/AD Indicator *

Q

Quarter in numbers (1,2,3,4)

MM

Month of year 01, 02...12

MONTH

Month in characters (i.e. January)

MON

JAN, FEB

WW

Weeknumber (i.e. 1)

W

Weeknumber of the month (i.e. 5)

IW

Weeknumber of the year in ISO standard.

DDD

Day of year in numbers (i.e. 365)

DD

Day of the month in numbers (i.e. 28)

D

Day of week in numbers(i.e. 7)

DAY

Day of the week in characters (i.e. Monday)

FMDAY

Day of the week in characters (i.e. Monday)

DY

Day of the week in short character description (i.e. SUN)

J

Julian Day (number of days since January 1 4713 BC, where January 1 4713 BC is 1 in Oracle)

HH

Hournumber of the day (1-12)

HH12

Hournumber of the day (1-12)

HH24

Hournumber of the day with 24Hours notation (1-24)

AM

AM or PM

PM

AM or PM

MI

Number of minutes (i.e. 59)

SS

Number of seconds (i.e. 59)

SSSSS

Number of seconds this day.

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

oracle 天转换成月函数_oracle 日期转换格式 函数相关推荐

  1. oracle字体加粗函数_Oracle日期操作函数

    Oracle采用date类型表示日期时间,这是一个7字节的固定宽度的数据类型,有7个属性,包括:世纪.世纪中哪一年.月份.月中的哪一天.小时.分钟和秒.本文中把date类型称为日期时间类型,简称日期. ...

  2. mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) SELECT DAYOFWEEK('2016-01 ...

  3. 【转】MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 1 2 SELECT DAYOFWEEK('201 ...

  4. mysql带中文日期转换_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 2.WEEKDAY(date) 3.DAYOFMO ...

  5. 将mysql日期格式转换_MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数 1.DAYOFWEEK(date) 2.WEEKDAY(date) 3.DAYOFMO ...

  6. 用python把股票日K线转换成月K线周期数据,这可能是网上最稀缺的代码

    用python把股票日线转换成月K线周期,这可能是网上最稀缺的代码. 在网上找了半天,真的非常稀缺,把日K线转换成月线周期. 东拼西凑,再加上自己的修改,终于写出来了. 先爬取K线数据保存为temp. ...

  7. 字符转换to_char函数与日期转换to_date函数

    字符转换to_char函数与日期转换to_date函数 多种日期表示格式: YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位.两位或一位,缺省为当前世纪 MM,mm:0112的月份编号 MO ...

  8. 如何利用python将NWPU VHR-10目标检测遥感数据集的格式转换成VOC目标检测数据集的格式

    VOC目标检测数据集的格式 其中图片存放在JPEGImages文件夹中,标注是xml文件,存储在Annotations文件中 关于train集和val集的txt划分存放在ImageSets文件夹下面的 ...

  9. 为什么html转为word之后图片,html网页转换成word文档,转换成功,并且可以保存图片,但是总是为web版式的格式,怎么改成“页面”格式,多谢...

    html网页转换成word文档,转换成功,并且可以保存图片,但是总是为"web版式"的格式,怎么改成"页面"格式,多谢 html网页转换成word文档,转换成功 ...

最新文章

  1. 图片加载完成再执行事件
  2. TCP 、UDP各自的优缺点
  3. 四十一、Vue项目上手 | 用户管理系统 实现用户修改和删除功能(完成篇)
  4. atomikos   log already in use
  5. Word2010-页眉中字数未满但自动换行
  6. python pandas读取文件内容_python pandas读取大型文件
  7. R语言周氏检验(Chow test) 检验回归中结构不稳定性的虚拟变量的替代方案
  8. html之常用input type
  9. CodeForces 877E DFS序+线段树
  10. 计算机控制系统a卷-答案,微型计算机控制技术试卷附标准答案A
  11. 全面:Realtek/瑞昱无线产品图谱及市场构成
  12. 如何关闭搜狗输入法软键盘的热键
  13. 计算机管理用户拒绝访问,win10系统管理员账户拒绝访问怎么办
  14. GoLang之什么是CSP(1)
  15. Chrome V8让你更懂JavaScript
  16. C语言中如何求三角形最大正弦值,余弦定理求三角形面积
  17. 第一篇 Verilog入门—语言要素 数据类型
  18. 使用GDI/GDI+绘制到D3D9缓冲区的方法
  19. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用
  20. Python画出时钟

热门文章

  1. spark partition
  2. Linux/unix不同shell环境下数值运算的处理
  3. HAproxy编译安装
  4. Unity手机摇一摇
  5. python对列表的删除,挺有意思的东西
  6. python 字符串编码
  7. 总结————AJAX应用的五个步骤:
  8. 实现高性能稳定的socket tcp通讯经验分享
  9. 成本管控难题怎么破?BI大神带你一步步拆解分析,节省成本390万
  10. 孙悟空谈即时通讯有多神通广大