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 ????,所以只有这一个是正常的。希望能够帮助更多的人。
我用的是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.util.Date 通过 JPA 的 Oracle 日期字段
JS中如何把date类型转化为String,如何把String转化成Date类型