Using sql DATEADD function in java
Asked Answered
F

3

5

When I run queries using DATEADD it seems that the database does not recognize this function. also when I just run select DATEADD(Month, -3, GETDATE()) I'm getting:

Error code -1, SQL state 42X01: Syntax error: Encountered "<EOF>" at line 1, column 36.

I added the JAR file from hsqldb-2.2.9 as you can see

enter image description here

What am I missing here?

Fissi answered 27/8, 2012 at 7:56 Comment(3)
what is return GETDATE() functionPostdiluvian
Are you using Derby or HSQLDB? You have included both databases and the answer depends on the actual DBMS you use.Equilibrist
So why do you include HSQLDB as well?Equilibrist
E
9

Derby does not have a DATEADD function. You need to use the JDBC function timestampadd to achieve this:

select {fn TIMESTAMPADD(SQL_TSI_MONTH, -3, CURRENT_TIMESTAMP)}
from sysibm.sysdummy1

An alternative to using sysdummy1 is the ANSI standard values clause which works both in Derby and HSQLDB:

values ({fn TIMESTAMPADD(SQL_TSI_MONTH, -3, CURRENT_TIMESTAMP)})
Equilibrist answered 27/8, 2012 at 8:14 Comment(0)
D
1

ADD OR SUBTRACT ONE DAY IN DERBY select rundate, {fn TIMESTAMPADD(SQL_TSI_DAY, -1, RUNDATE)} from tst.YOUTH

Dameron answered 18/12, 2012 at 19:50 Comment(0)
P
0

For hsqldb:

DATEADD ( , , ) DATEADD ( 'month', 3, DATE '2008-11-22' )

Try it

select DATEADD(Month, -3, '2008-11-22')

For Derby:

Derby supports the JDBC escape function TIMESTAMPADD

TIMESTAMPDIFF( interval, timestampExpression1, timestampExpression2 )

values {fn timestampadd(SQL_TSI_DAY, 1, timestamp('2010-12-31 23:59:59'))};

Postdiluvian answered 27/8, 2012 at 8:4 Comment(4)
Derby does not have a DateAdd functionEquilibrist
But Onca has also included Apache Derby.Equilibrist
This SELECT also fails. So how can I do it in derby?Fissi
@Onca: see my answer. And please clarify why you add the HSQLDB libraries if you are using DerbyEquilibrist

© 2022 - 2024 — McMap. All rights reserved.