社区
Java SE
帖子详情
Oracle数据库,JDBC访问,字段类型是DATE,PreparedStatement里用setTimestamp还是setDate?
yanransoft
2009-05-04 07:50:53
如题。
...全文
1582
18
打赏
收藏
Oracle数据库,JDBC访问,字段类型是DATE,PreparedStatement里用setTimestamp还是setDate?
如题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yanransoft
2009-05-07
打赏
举报
回复
[Quote=引用 16 楼 java2000_net 的回复:]
如果有时分秒,就用setTimestamp 同时你的属性也最好用 Timestamp 类。
如果只有年月日,用setDate
不过许多人更愿意记录一个long, 呵呵,你能猜出来这个long是啥吗?
[/Quote]
呵呵,Date.getTime(),since 1970.1.1 ...
yanransoft
2009-05-07
打赏
举报
回复
[Quote=引用 14 楼 imasmallbird 的回复:]
引用 13 楼 yanransoft 的回复:
我考虑下,java.sql.Date无法满足包含时间信息的要求,java.sql.Timestamp在Oracle被识别为timestamp类型,跟DATE类型不符,不能使用索引。所以综合来看,使用to_date函数传入字符串类型的时间串最好。 大家还有其它高见否?
其实当初要是把表里的字段设置成Varchar2()的就好了~~
还有请教一下那个不能使用索引是如何看出来的??
[/Quote]
直观看执行速度。
yanransoft
2009-05-06
打赏
举报
回复
[Quote=引用 11 楼 x114944880 的回复:]
java.sql.Date 转换成Util的再拿时间信息
[/Quote]
java.util.Date不能传给PreparedStatement的。
x114944880
2009-05-06
打赏
举报
回复
java.sql.Date 转换成Util的再拿时间信息
yanransoft
2009-05-06
打赏
举报
回复
[Quote=引用 9 楼 thc1987 的回复:]
如果你的日期类型是java.sql.Date的话,就setDate()
[/Quote]
可是java.sql.Date的类型不包含时间信息的。
老紫竹
2009-05-06
打赏
举报
回复
如果有时分秒,就用setTimestamp 同时你的属性也最好用 Timestamp 类。
如果只有年月日,用setDate
不过许多人更愿意记录一个long, 呵呵,你能猜出来这个long是啥吗?
Landor2004
2009-05-06
打赏
举报
回复
Oracle数据库,JDBC访问,字段类型是DATE,PreparedStatement里用setTimestamp还是setDate?
oracle java
date java.sql.date
timestamp java.sql.timestamp
如果oracle是date,而java中用sql.date的话,会丢失时分秒,所以可以另想办法
比如:java中是日期字符串,后台用to_date(datestr,'yyyy-mm-dd hh24:mi:ss')来转换
当然oracle中的date类型在获取的时候也会自动去掉时分秒,所以可以用to_char函数来处理
带时分秒的,最好的方法当然是前后都用timestamp
imasmallbird
2009-05-06
打赏
举报
回复
[Quote=引用 13 楼 yanransoft 的回复:]
我考虑下,java.sql.Date无法满足包含时间信息的要求,java.sql.Timestamp在Oracle被识别为timestamp类型,跟DATE类型不符,
不能使用索引
。所以综合来看,使用to_date函数传入字符串类型的时间串最好。 大家还有其它高见否?
[/Quote]
其实当初要是把表里的字段设置成Varchar2()的就好了~~
还有请教一下那个不能使用索引是如何看出来的??
yanransoft
2009-05-06
打赏
举报
回复
我考虑下,java.sql.Date无法满足包含时间信息的要求,java.sql.Timestamp在Oracle被识别为timestamp类型,跟DATE类型不符,不能使用索引。所以综合来看,使用to_date函数传入字符串类型的时间串最好。 大家还有其它高见否?
zxcv_168
2009-05-05
打赏
举报
回复
setTimeStamp()。
emon123
2009-05-05
打赏
举报
回复
如果想要得到时间和日期信息,用setTimeStamp()。因为Timestamp封装有关签署时间戳的信息,它包括了时间戳的日期和时间
imasmallbird
2009-05-05
打赏
举报
回复
java.sql.Timestamp继承java.util.Date类并加以扩充,如果在sql里使用
setDate()设置的时间只包括年月日,要完整时间需要调用setTimeStamp()
猿敲月下码
2009-05-05
打赏
举报
回复
如果你的日期类型是java.sql.Date的话,就setDate()
yanransoft
2009-05-05
打赏
举报
回复
如果是ps.setTimestamp的话是不是在Oracle那边,是被识别为一个Timestamp对象呢?也就是to_timestamp的返回对象类型一致?
xdop
2009-05-05
打赏
举报
回复
Oracle 9i开始有timestamp
该用Date还是Timestamp看日期精度要求情况而定
to_timestamp是SQL的类型强转函数,能不用则尽量别用。
yanransoft
2009-05-05
打赏
举报
回复
谢谢大家,但是又有一个问题,就是setTimestamp的话, 那这个DATE类型的字段上的索引又用不上了。。
JDBC的setTimestamp是不是和to_timestamp的效果一样的?
大家可以看下,DATE字段如果用to_timestamp不会使用索引, 而用to_date是可以利用索引的。
yanransoft
2009-05-04
打赏
举报
回复
可是setDate有这样的问题,就是它本身是不包含时间信息的,即时间永远是00:00:00.可Oracle的DATE字段时可以存储时间的啊,可以to_date('...','yyyymmdd hh24:mi:ss')的。
daihua_1113
2009-05-04
打赏
举报
回复
setDate
软件开发中日期在
数据库
的处理
软件开发中日期在
数据库
的处理,mysql和
oracle
数据库
中日期的处理方法
java实现
oracle
插入当前时间的方法
主要介绍了java实现
oracle
插入当前时间的方法,以实例形式对比分析了java使用
Oracle
操作时间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
jdbc
oracle
date
相减,
Oracle
JDBC
驱动使用
set
Date
()、
set
Timestamp
()导致全表扫描
今天有一个项目组报说,一个业务流程在
Oracle
上无法执行完成,而在SQL SERVER却非常的正常。环境:
ORACLE
RAC 10.2.0.4.0 FOR AIX 64bit于是开始查询是什么原因,该业务流程操作的表是一个非常大的表,亿级的数据量。通过对业务流程SQL执行的监控,发现在执行对这个表做小部分数据删除的SQL时候卡住不动了。查看了SQL的执行计划发现是全表扫描,没有建索引,于是把索...
Oracle
用
jdbc
插入日期
Oracle
用
jdbc
插入日期 首先这是我们的表 CREATE or replace TABLE dinnerTable( id number PRIMARY KEY , -- 餐桌主键 tableName VARCHAR(20), -- 餐桌名 tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定...
JDBC
对
oracle
日期
类型
的处理
JDBC
对
oracle
日期
类型
的处理
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章