社区
Java SE
帖子详情
Oracle数据库,JDBC访问,字段类型是DATE,PreparedStatement里用setTimestamp还是setDate?
yanransoft
2009-05-04 07:50:53
如题。
...全文
1568
18
打赏
收藏
Oracle数据库,JDBC访问,字段类型是DATE,PreparedStatement里用setTimestamp还是setDate?
如题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
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的执行计划发现是全表扫描,没有建索引,于是把索...
jdbc
存储及获取
oracle
数据库
时间
字段
时无法显示时分秒
关于
数据库
存取时间
字段
时只能显示日期(年月日)无法获取时间(时分秒)的问题是一个比较常见的问题,下面对于出现此问题做一个分析并找到一个解决方案。 出现此问题的原因: 由于java.util.
Date
类型
虽然拥有时分秒,但是此
类型
只是java中的类,并不是
数据库
时间
类型
,是不能直接插入
数据库
中的;所以只能使用java.sql.
Date
存入
数据库
,但是它只有日期而没有时间。 问题解...
Oracle
用
jdbc
插入日期
Oracle
用
jdbc
插入日期 首先这是我们的表 CREATE or replace TABLE dinnerTable( id number PRIMARY KEY , -- 餐桌主键 tableName VARCHAR(20), -- 餐桌名 tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定...
如何在java类中向
oracle
数据库
写入
Date
类型
的日期
str = "up
date
eam_pc_plan
set
status = ?,factTime = ?,dealResult=?,pcMan=? where pcPlanId = ?"; pstmt = conn.pre
pa
re
Statement
(str); pstmt.
set
Int(1, pcPlan.getStatus()); java.text.
不支持 java
类型
java.util.
date
._关于
oracle
数据库
date
类型
赋予java.util
Date
出现“无效的列
类型
”...
项目情况:应由客户要求需要将之前基于jfinal3.0开发的网站数据由mysql切换至
oracle
。切换至
oracle
后,经测试反映所有涉及到
date
类型
的数据表不管是新增/还是设置查询条件,均出现“无效的列
类型
”。解决过程:1、经过调试发现
oracle
数据库
中
Date
列实际返回列
类型
未java.sql.
Timestamp
;我的第一反应就是更改参数
类型
,将之前java.util.
Date
类型
改成j...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章