Oracletimestamp类型增加值的问题

Oracletimestamp类型增加值的问题,第1张

在工作中我碰到这样一个问题 session表需要用到timestamp的字段 在进行timestamp字段更新时出现了为题 比如需要对session的有效期增加 小时

采用 systimestamp + / 会丢失秒后的精度 感觉增加之后就变成了date型的样子 经过研究发现oracle 有个函数叫NUMTODSINTERVAL 可以解决这个问题 下面两个例子说明如何使用这个函数

增加一小时

SELECT to_char(systimestamp + NUMTODSINTERVAL( hour ) yyyy mm dd HH :mi:ss:ff ) to_char(systimestamp yyyy mm dd HH :mi:ss:ff ) FROM dual

增加一分钟

SELECT to_char(systimestamp + NUMTODSINTERVAL( minut ) yyyy mm dd HH :mi:ss:ff ) to_char(systimestamp yyyy mm dd HH :mi:ss:ff ) FROM dual

对numtodesignterval的原版解释如下

NUMTODSINTERVAL converts n to an INTERVAL DAY TO SECOND literal The argument n can be any NUMBER value or an expression that can be implicitly converted to a NUMBER value The argument interval_unit can be of CHAR VARCHAR NCHAR or NVARCHAR datatype The value for interval_unit specifies the unit of n and must resolve to one of the following string values:

DAY

HOUR

MINUTE

SECOND

lishixinzhi/Article/program/Oracle/201311/17416

insert into mi_config_info_if values(to_timestamp(nvl('原来的时间','1900-01-01 00:00:00'),'yyyy-mm-dd hh24:mi:ss')

像这样设定一个原来的时间为null的时候的默认值就行。

你是在JAVA中向Oracle添加DATE类型数据吧

可以用这个PrepredStatement pstmt.........

pstmt.setTimestamp(date)

这样是可以的,这里,你要用DateFormat格式化下日期格式的,不然只能精确到日


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7899945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存