oracle日期格式转换问题

在默认的sqlplus或者sqlplusw下或者程序编写过程中,执行该命令后,如果是同一个session是肯定会产生你要的效果。
如果要将整体的数据库级别默认格式改掉需要修改参数文件,并重启数据库才可以,但是这个也改不掉你第三方工具的显示格式,第三方工具只能在工具内部去改,它只能改掉默认的日期格式,第三方工具都是转换后的;但是很多时候容易被工具所忽悠,给人的感觉就是数据库就是这样存储的,其实存储的只有日期格式,没有YYYYMM这些东西,这些东西都是通过算法计算出来的结果,然后根据格式要求进行对应的格式化给看到的这样的效果而已。
oracle date类型有自己的存储方式,转换也只能转换成字符串的显示方式,而没有改变date类型,另外date类型的每个域是有限制的,比如小时是0-23,哪有24的啊,所有的日期都没有24的

SQL code


DINGJUN123>select to_date('2010050623','yyyymmddhh24') from dual;

TO_DATE('20100
--------------
06-5月 -10

DINGJUN123>alter session set nls_date_format='yyyymmdd hh24:mi:ss';

会话已更改。

DINGJUN123>/

会话已更改。

DINGJUN123>select to_date('2010050623','yyyymmddhh24') from dual;

TO_DATE('20100506
-----------------
20100506 23:00:00

DINGJUN123>alter session set nls_date_format='yyyymmdd hh:mi:ss';

会话已更改。

DINGJUN123>select to_date('2010050623','yyyymmddhh24') from dual;

TO_DATE('20100506
-----------------
20100506 11:00:00

DINGJUN123>alter session set nls_date_format='yyyymmdd hh24:mi:ss,am';
ERROR:
ORA-01818: 'HH24' 不使用上下午指示符


DINGJUN123>alter session set nls_date_format='yyyymmdd hh:mi:ss,am';

会话已更改。

DINGJUN123>select to_date('2010050623','yyyymmddhh24') from dual;

TO_DATE('2010050623','
----------------------
20100506 11:00:00,下午
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值