Oracle SQL 求算时间加减问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle SQL 求算时间加减问题相关的知识,希望对你有一定的参考价值。

具体如下:closetime:数据库已存的,类型为TimeStamp(6) ,SYSTIMESTAMP:当前系统时间
我首先,select SYSTIMESTAMP from dual 取得当前时间!
然后获取:
ResultSet rs1 = null;
rs1 = pstmt1.executeQuery();
while (rs1.next())
SYSTIMESTAMP = rs1.getTimestamp(1);

最后,我要查询 另一个表的,据当前时间,前后 15天的数据:
select closetime,begintime,maxmoney from TBL_TABLE
where trunc(to_number(substr((closetime- " + SYSTIMESTAMP + "),1,instr(closetime- " + SYSTIMESTAMP + " ,' ')))) < 15
我这个SQL语句 一运行就报错,基本就是 数据类型不对,求大神帮我解决!trunc也是我查的,不知道是不是这个方法,好像不支持timestamp型!

参考技术A select
closetime,
begintime,
maxmoney
from
tbl_table
where
closetime>=clostime-15 and closetime<=closetime+15追问

这样直接剪,不对,我运行了,等于没写

追答

instr(closetime-"+SYSTIMESTAMP+","
这个“,"是多余的吧

追问

按照你那个直接减的方法不对啊。date型,才可以这样。

追答

是不是可以用to_date函数转换一下呢

本回答被提问者采纳
参考技术B 你确实你SQL是这样写的? SQL字符串用单引号,JAVA才是双引号追问

这个是JAVA ,你能看深层次一点吗?不要留在这个浅层次

追答

那你的SQL里怎么会双引号?

SQL请教大家一个日期的加减法

比如一个字段A,datetime,2009-11-20 12:23:12

现在我想做两件事情

月份减1,得出2009-10-20 12:23:12
日期减1,得出2009-11-19 12:23:12

请问在不改变字段类型的前提下如何实现,谢谢大家

ql语句处理时间——日期加减天数如下:

select date_add(now(), interval 1 day); -- 加1天

select date_add(now(), interval 1 hour); -- 加1小时

select date_add(now(), interval 1 minute); -- 加1分钟

select date_add(now(), interval 1 second); -- 加1秒

select date_add(now(), interval 1 microsecond);-- 加1毫秒

select date_add(now(), interval 1 week);-- 加1周

select date_add(now(), interval 1 month);-- 加1月

select date_add(now(), interval 1 quarter);-- 加1季

select date_add(now(), interval 1 year);-- 加1年

扩展资料

SQL中常用日期函数

1、GETDATE() 返回当前系统日期;

SELECT GETDATE()

2、DATEADD(日期部分,常数,日期) 返回将日期的指定日期部分加常数后的结果返回;

--常数为正

SELECT DATEADD(YY,1,GETDATE())

--等同于

SELECT DATEADD(YEAR,1,GETDATE())

--常数为负数

SELECT DATEADD(YY,-2,GETDATE())

--常数为小数(直接舍去小数部分)

SELECT DATEADD(YY,2.4,GETDATE())

SELECT DATEADD(YY,2.5,GETDATE())

SELECT DATEADD(YY,2.6,GETDATE())

参考技术A http://baike.baidu.com/view/327444.htm?fr=ala0
月份减1 select DateAdd(m,-1, A) from 表
日期减1 select DateAdd(d,-1, A) from 表本回答被提问者采纳
参考技术B select dateadd(month,-1,字段A) 月份减一
select dateadd(day,-1,字段A) 日期减一
参考技术C select dateadd(month,-1,A) 月份减一,dateadd(day,-1,A) 日期减一 from 表 参考技术D select add_months(datetime, -1), datetime-1 from dual

以上是关于Oracle SQL 求算时间加减问题的主要内容,如果未能解决你的问题,请参考以下文章

sql查询中日期加减的问题

sql里日期怎么加减

Oracle 日期加减运算

sql server to oracle

SQL语句问题(关于日期加减与字段加减)

oracle 时间加减