Oracle数据库插入日期格式字符串给date类型字段,nls_date_format参数值作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库插入日期格式字符串给date类型字段,nls_date_format参数值作用相关的知识,希望对你有一定的参考价值。
参考技术A查询各个级别nls_date_format
设置nls_date_format
2)其次,设定nls_date_format的值
①session级别设定值:
alter session set nls_date_format = \'yyyy-mm-dd hh24:mi:ss\';
设定之后再查询会发现nls_session_parameters视图中nls_date_format的值已经变了,而nls_instance_parameters、nls_database_parameters视图中的值没有变。
session级别——如果只是希望自己看到某种格式而不影响其他人看到的结果。
②instance级别设定值:
alter system set nls_date_format = \'yyyy-mm-dd hh24:mi:ss\';
此级别的值在oracle9i以后就不允许设定了。
③database级别设定值:
oracle不允许设定此级别的参数值,也没有提供设定语句。
更改日期类型格式化
目的:减少客户端对时间字段(字符串,日期)格式化
oracle中将原有的年、月、日个字段整合成日期形式插入数据库?
你好,Oracle中日期类型是date类型,sql语句中是区分类型的,也就是说虽然形势上'2012-12-21'是一个日期,但是它在Oracle中却是实实在在的字符串类型,所以不能插入到date类型的字段里,解决方法就是将日期字符串转换成date类型就可以了,这里可以使用to_date函数,如:insert into tablename (date_column) values(to_date('2012-12-21','yyyy-mm-dd') )。
to_date里需要两个参数,第一个是日期字符串,可以在程序中拼好(Java或者其他高级程序语言想实现这一点都是很容易的);第二个参数是日期的格式,'yyyy-mm-dd'的意思是想要4位的年份,两位的月份(比方说如果为2,则保存为:02)和两位的日期(这个意义和月份相同,假如为4号,则保存为04)。如果想要其他的格式或者想插入具体的时分秒时间都是可以的,比如:
to_date('2012-12-21 12:12:12','yyyy-mm-dd hh24:mi:ss')后边的24代表使用24时制时间。够明白吧! 参考技术A 这个简单,遍历数据库,
Resultset select =Select * from 表
While( Result.next() String[] year = select.getString(" 年")
While( Result.next() String [] mon= select.getString(" 月")
While( Result.next() String [] day = select.getString(" 日")
for(int i=0;i<select.getRow;i++)
String[i] 日期 = year[i]+mon[i]+day[i]
for(int i=0;i<select.getRow;i++)
update 表 SET 日期 =String[i]日期 WHERE year = String[i] year and mon = String[i] mon
希望对你有帮助 参考技术B insert tableA values(
...
,YYYYMMDDField = to_date(to_char(YYYYField) || to_char(MMField) || to_char(DDField),'YYYYMMDD')
...
) 参考技术C SELECT to_date('2012年03月12日','yyyy"年"mm"月"dd"日"') FROM dual
以上是关于Oracle数据库插入日期格式字符串给date类型字段,nls_date_format参数值作用的主要内容,如果未能解决你的问题,请参考以下文章