db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From emchem <emman...@chem.la>
Subject problem with timestampdiff
Date Wed, 23 Feb 2011 17:57:37 GMT

Hi, I needed to accomplish a simple task with Derby: computing an interval of
days (like datedif in excel).

I used the TIMESTAMPDIFF function, it seemed to work well, until I noticed a
strange behaviour : sometimes the computation is OK, sometimes not.

After having searched the trouble, I've found that from TIMESTAMPDIFF's
point of view, the 28 march 2010 is not a different day than the 29 march of
2010.

You can easily check this with this script :

-- creating testing environment 
CREATE TABLE dummy (beginning DATE, ending DATE);
INSERT INTO dummy (beginning, ending) VALUES ('2010-04-01', '2010-04-01');
INSERT INTO dummy (beginning, ending) VALUES ('2010-03-31', '2010-04-01');
INSERT INTO dummy (beginning, ending) VALUES ('2010-03-30', '2010-04-01');
INSERT INTO dummy (beginning, ending) VALUES ('2010-03-29', '2010-04-01');
INSERT INTO dummy (beginning, ending) VALUES ('2010-03-28', '2010-04-01');
INSERT INTO dummy (beginning, ending) VALUES ('2010-03-27', '2010-04-01');
INSERT INTO dummy (beginning, ending) VALUES ('2010-03-26', '2010-04-01');
--
-- checking the odd behaviour
SELECT beginning, ending, {fn timestampdiff(SQL_TSI_DAY, beginning, ending
)} AS "interval in days" FROM dummy;
--
--  cleaning
DROP TABLE dummy


You'll get this result :

beginning	ending	interval in days
2010-04-01;	2010-04-01;	0
2010-03-31	;	2010-04-01;	1
2010-03-30	;	2010-04-01;	2
2010-03-29	;	2010-04-01;	3
2010-03-28	;	2010-04-01;	3
2010-03-27	;	2010-04-01;	4
2010-03-26	;	2010-04-01;	5

Someone has any insight on this ? Is there a nicer way to get the interval
in days that won't get into this trouble ?

-- 
View this message in context: http://old.nabble.com/problem-with-timestampdiff-tp30997315p30997315.html
Sent from the Apache Derby Users mailing list archive at Nabble.com.


Mime
View raw message