oracle Sysdate的问题

wszj851218 2011-04-15 01:19:47
各位,小弟遇到一个很郁闷的问题,关于sysdate
我现在有两张表,表里面都有一个字段是date类型,但是在插入数据的时候,一个表里面有时分秒,一个里面没有(说明:我是需要时分秒的),请问该怎么解决,谢谢啦!
...全文
1616 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
小龙在线 2012-08-31
  • 打赏
  • 举报
回复
今天,我也遇到了这个问题,而且是同一张表

update的时候给字段赋值sysdate

select的时候to_char(field,'yyyy-mm-dd hh24:mi:ss')

查询的结果确实有的字段没有时分秒的数据,示意数据如下:
2012-8-30 9:39:04 2012-08-30 09:39:04
2012-8-30 2012-08-30 00:00:00


敢问如何是好呢?
AslenG 2012-06-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

你怎么确定没有时分秒呢
查询语句是什么
[/Quote]
+1 这情况我也遇到过,插入的时候都是sysdate,但怎么都查不出时分秒来,原来是查询语句没写对,应该这样写:
select to_char(tdate,'yyyy-mm-dd hh24:mi:ss') 时间 from t_tmp
wszj851218 2011-04-18
  • 打赏
  • 举报
回复
其实我知道怎么实现有时分秒的格式,我就是不知道为什么我的两张表的两个字段都是date类型,插入也都是用的sysdate,都在一个tablespace下面,而且两张表插入时间相近,我就搞不懂为什么一个有时分秒,一个没有???
wszj851218 2011-04-18
  • 打赏
  • 举报
回复
算了,不纠结这个问题了,实在没什么意思。。。
结贴!!!
luoyoumou 2011-04-18
  • 打赏
  • 举报
回复
-- 操:这么简单的问题,你就去纠节一辈子吧!
-- 一个表里面有时分秒,一个里面没有,你到底是怎么看出来的?怎么知道:一个表里面有时、分、秒,而另一个表里没有?你的SQLG语句是什么?

-- 我到底要看你能纠节到啥时候!
wszj851218 2011-04-18
  • 打赏
  • 举报
回复
。。。插入的时候都是用的sysdate啊
苹果城的肥瓜 2011-04-18
  • 打赏
  • 举报
回复
肯定是插入有问题啊
fendou1314 2011-04-17
  • 打赏
  • 举报
回复
可以使用select trunc(sysdate,'dd') from dual;语句看看效果
wszj851218 2011-04-15
  • 打赏
  • 举报
回复
INPUT_TIME DATE,
WARNING_DATE DATE,
这两个字段
luoyoumou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 wszj851218 的回复:]

我确定两个表都是date类型,而且都是用的sysdate
[/Quote]

-- 把你的插入语句贴出来,然后把你的查询语句贴出来,就一目了然啦!猪啊......
fly2sky 2011-04-15
  • 打赏
  • 举报
回复
楼主一直在确认自己的说的,能不能给点证据啊,把表结构以及插入语句查询语句贴出来一下~ 让大家看看嘛
wszj851218 2011-04-15
  • 打赏
  • 举报
回复
难道插入date类型的还需要进行to_char然后再to_date转换???
wszj851218 2011-04-15
  • 打赏
  • 举报
回复
我确定两个表都是date类型,而且都是用的sysdate
yejihui9527 2011-04-15
  • 打赏
  • 举报
回复
诡异哦
拉超 2011-04-15
  • 打赏
  • 举报
回复
顶15楼的,就是和系统显示参数和插入时候是否进行了to_char之类的操作有关。。
luoyoumou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wszj851218 的回复:]

我是同一个数据库中的两张表啊,而且两张表插入数据的时间不会超过30秒,所以我不认为是session的问题
[/Quote]

-- 那是你的插入程序里的插入语句的问题!(你确定你两个表的两个日期字段都是日期类型吧?)
luoyoumou 2011-04-15
  • 打赏
  • 举报
回复
scott@RACDB> create table t( id number(18,0), name varchar2(20), cdate date);

表已创建。

scott@RACDB> insert into t(id,name,cdate) values(1,'luoyoumou1',sysdate);

已创建 1 行。

scott@RACDB> insert into t(id,name,cdate) values(2,'luoyoumou2',to_date('2011-04-15','yyyy-mm-dd'));

已创建 1 行。

-- 上面这条记录的时、分、秒将是:00:00:00,因为你没有指定时、分、秒,所以默认这些部分均为0!

scott@RACDB> insert into t(id,name,cdate) values(3,'luoyoumou3',sysdate);

已创建 1 行。

scott@RACDB> commit;

提交完成。

scott@RACDB> select * from t;

ID NAME CDATE
---------- ---------------------------------------- -------------------
1 luoyoumou1 2011-04-15 22:19:34
2 luoyoumou2 2011-04-15 00:00:00
3 luoyoumou3 2011-04-15 22:20:40

scott@RACDB> alter session set nls_date_format='yyyy-mm-dd';

会话已更改。

scott@RACDB> select * from t;

ID NAME CDATE
---------- ---------------------------------------- ----------
1 luoyoumou1 2011-04-15
2 luoyoumou2 2011-04-15
3 luoyoumou3 2011-04-15
wszj851218 2011-04-15
  • 打赏
  • 举报
回复
我是同一个数据库中的两张表啊,而且两张表插入数据的时间不会超过30秒,所以我不认为是session的问题
luoyoumou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wszj851218 的回复:]

关键问题是那些表在服务器上,而且两个表插入基本上就一先后,不可能说是两个不同的session
[/Quote]

-- 不管你是哪个session,只要字段是date类型,就有时、分、秒的信息,
-- 你select date类型字段,之所以显示不出时、分、秒的信息是
-- 因为跟nls_date_formate和nls_date_language两个参数有关,

-- 还不明白?......
wszj851218 2011-04-15
  • 打赏
  • 举报
回复
关键问题是那些表在服务器上,而且两个表插入基本上就一先后,不可能说是两个不同的session
加载更多回复(11)

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧