Dan,

I did not know of the JDBC escape functions. These work indeed with Derby, however the MySQL JDBC driver does not seem to support them (we need to run our queries on both Derby and MySQL).

I know that this is not the best place to ask, but does anyone happen to know more about the status of JDBC escape functions in MySQL?

Robert


Daniel John Debrunner wrote:
Robert Enyedi wrote:

Michael,

As far as I know, year 0 in MySQL is actually 1 AD. However, it doesn't
necessarily matter when that year is when you have the comparability of
the results.

What matters that this function in combination with its reverse,
FROM_DAYS, allows easily for one to compute things like:
- are both timestamps in the same day? TO_DAYS(tstamp1) = TO_DAYS(tstamp2)

I think this will have the same result:

   DATE(tstamp1) = DATE(tstamp2)

- how many days are between the two dates? TO_DAYS(date1) - TO_DAYS(date2)
Use the TIMESTAMPDIFF function (see below)

- what is the date if one adds X days to a specified date?
FROM_DAYS(TO_DAYS(date1) + X)

Use the TIMESTAMPADD function.

I'm not specifically in love with this function either, but what other
alternatives does Derby offer to make these computations?

DATE(number) looks the same as FROM_DAYS.

http://db.apache.org/derby/docs/10.1/ref/rrefdatefunc.html

For the others you can use the TIMESTAMPADD and TIMESTAMPDIFF JDbC
escape functions, see the bottom of this page:

http://db.apache.org/derby/docs/10.1/ref/rrefjdbc88908.html

Note these are JDBC escape functions, thus they have to be called using
{fn }, here's an example from that page.

{fn TIMESTAMPADD( SQL_TSI_MONTH, 1, CURRENT_TIMESTAMP)}

Returns a timestamp value one month later than the current timestamp.

Dan.







Reply via email to