ORACLE 数据库中在将date类型转换成varchar类型时出现问题。SQL如下:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE 数据库中在将date类型转换成varchar类型时出现问题。SQL如下:相关的知识,希望对你有一定的参考价值。

select date_colum, to_char(date_colum,'yyyymmdd') from table ;

查询的结果如图所示:请问这是怎么回事,请高手指教,不胜感激!
date_colum 字段是date 类型的 , 还有一点是我的数据时通过PB前台操作保存到ORACLE中的,请问如何解决这个问题 ?
多谢各位热心帮忙,问题我找到了,这个问题跟大家分享一下,主要原因是我在PB前台保存的时候把datime类型强制转换成date类型,但是ORACLE数据库认为两个类型是一样的,所以在保存的时候只保存了一部分进去,例如2011-05-05 保存到数据库中后变为 2011-05-05 ???? ,所以在通过SQL取值时出现全部是0的闹剧,而1998-1-1那个没有乱码是因为恰巧那个值保存的时候没有保存为1998-1-1 ????,所以只有这一个是正常的。希望能够帮助更多的人。

你这转换函数的format格式都错了,你的原数字字段有'-' ,而你的format中没有,应该写成to_char(date_colum,'yyyy-mm-dd') 参考技术A 1998年那个就没问题,2000年以后的就有问题了。怎么回事呢? 参考技术B 问题太诡异了,你用的什么工具,换成sqlplus试试追问

我用的是PLSQLDEV版本8 上执行的结果,刚才我试了一下sqlplus 效果和原来的效果是一样的也都是‘00000000’ ,请问这是什么原因

追答

这个真不知道怎么回事,你用sqlplus或者pl/sql developer插入几条数据,然后检索看看。
我还怀疑过你的字段类型是否正确,可是我用varchar2试的时候根本就报错

你也可以试试下面的,完全脱离你原表的情况。

create table ta(va varchar2(20),da date);
insert into ta values('2012-2-2',to_date('2012-2-2','yyyy-mm-dd'));
insert into ta values('2012-1-1',to_date('2012-1-1','yyyy-mm-dd'));
select * from ta;
--select va, to_char(va,'yyyymmdd'),da, to_char(da,'yyyymmdd') from ta ; -- 报错
select da, to_char(da,'yyyymmdd') from ta ;

本回答被提问者采纳

如何正确地转换成 java.util.Date 通过 JPA 的 Oracle 日期字段

参考技术A Oracle的日期字段,建议在sql语句中to_char,转成字符串,再传递给java
这样的效率也会高一些
to_char(date,'yyyy-mm-dd hh24:mi:ss')
oracle不分大小写本回答被提问者和网友采纳
参考技术B 示例如下:
package com.qiu.lin.he;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CeShi

public static void main(String[] args)
String dateStr = "2010-10-11 10:00:02";
try
Date d = parseDate(dateStr);//将字符串转换成date类型
System.out.println(d);
catch (ParseException e)
// TODO Auto-generated catch block
e.printStackTrace();




//将字符串转换成date类型方法
static public Date parseDate(String s) throws ParseException
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.parse(s);



结果是:
Mon Oct 11 00:00:00 CST 2010
参考技术C 在日期字段上使用注解就可以自动转换
@Temporal

详细的请参照http://lushizhidao.com/question/6

以上是关于ORACLE 数据库中在将date类型转换成varchar类型时出现问题。SQL如下:的主要内容,如果未能解决你的问题,请参考以下文章

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

如何正确地转换成 java.util.Date 通过 JPA 的 Oracle 日期字段

oracle怎么把数值型日期转换成日期字符型

JS中如何把date类型转化为String,如何把String转化成Date类型

oracle中将原有的年、月、日个字段整合成日期形式插入数据库?

如何用Java把date类型转换成long数字?