Issue Details (XML | Word | Printable)

Key: CORE-1522
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Adriano dos Santos Fernandes
Reporter: Adriano dos Santos Fernandes
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
Firebird Core

Inconsistent DATEDIFF behaviour

Created: 17/Oct/07 09:52 AM   Updated: 19/Jan/16 05:48 AM
Component/s: Engine
Affects Version/s: 2.1 Beta 1, 2.1 Beta 2
Fix Version/s: 2.1 RC1

Issue Links:

QA Status: Done successfully

 Description  « Hide
From a Russian newsgroup:


I have discovered that different logic is used for operations with date and time parts.

For date:

DATEDIFF(MONTH, CAST('30.01.2007' AS DATE), CAST('31.01.2007' AS
DATE)) returns 0,

DATEDIFF(MONTH, CAST('31.01.2007' AS DATE), CAST('01.02.2007' AS
DATE)) returns 1.

So the result value changes at the month boundary.

For time:

DATEDIFF(HOUR, CAST('01:59:59' AS TIME), CAST('02:59:58' AS
TIME)) returns 0,

DATEDIFF(HOUR, CAST('01:59:59' AS TIME), CAST('02:59:59' AS
TIME)) returns 1.

So the integer number of hours is always returned.

Is it intentional? If so, why?


Third query should return 1.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Philippe Makowski added a comment - 07/Oct/08 05:30 AM
Q/A test ok