ORACLE数据库中怎么设置date类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE数据库中怎么设置date类型相关的知识,希望对你有一定的参考价值。

update yy_xmxx set wgrq=to_date('2009-12-30','yyyy-mm-dd')where jsnd='2009' 当年度市2009年时 将完工日期刷2009-12-30 执行之后 看到结果是30-12月-09 为什么会这样
在前台看到的是1899-12-30

分两种情况,一种是在创建表的时候直接设置date类型,另一种是在表已存在的情况下,更改某字段类型为date。

第一种情况:

create table test
(id int,
ttime date);

如,上述内容是直接设置ttime字段类型为date。


第二种情况:

alter table test modify ttime date;

如,上述是将test表中的ttime字段在非date类型的情况下改为date类型,但前提需要是表内无数据,否则执行会报错。

参考技术A SQL Plus 里面, 暂时设置一下 Session 里面的 日期格式显示的设置。

SQL> ALTER session
2 SET nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

然后 SELECT wgrq FROM yy_xmxx WHERE jsnd='2009' 看看。
首先确认数据库的数据,被正确的更新了。

至于那个 在前台看到的是1899-12-30。
不知道那个 前台是什么软件写的了。本回答被提问者采纳
参考技术B 语句没有问题...

问题在你去查看结果的时候 显示的问题...
那是你的session设置问题...
将 NLS_DATE_FORMAT设置下
SQL> ALTER SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';

一劳永逸的方法是:
去x:\oracle\product\10.2.0\db_1\sqlplus\admin下的glogin.sql脚本下进行编辑,永久有效,不用每次都设置。
参考技术C 试试下面这样:
update yy_xmxx set wgrq=to_date('2009-12-30','yyyy-mm-dd','NLS_DATE_LANGUAGE = American')where jsnd='2009'

以上是关于ORACLE数据库中怎么设置date类型的主要内容,如果未能解决你的问题,请参考以下文章

oracle里的date类型怎么查询

oracle中两个varchar2类型的时间怎么进行比较

oracle 中 date类型的在数据库怎么存入

oracle的date类型:我在表中的某个字段设置的类型是date,想要插入数据后显示"年月日时分秒",该如何插入

ORACLE数据库设置date类型默认值后为啥还要手动添加?是否我写错了?

java 中怎么把字符串转为oracle date类型