
在工作中我碰到这样一个问题 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两个地方可以,
1.创建对象时,通过构造方法,Timestamp ts = new Timestamp(System.currentTimeMillis())
2. 手动setts.setTime(System.currentTimeMillis())
里面传的是long类型,
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)