Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-4107

The Reference Guide incorrectly describes the behavior of the DATE function when applied to an integer argument

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.4.2.0
    • 10.6.1.0
    • Documentation
    • None
    • MS Windows XP Professional Version 2002 Service Pack 2, running NetBeans IDE 6.5
    • Normal

    Description

      When Derby Reference Manual, version 10.4, lists Derby limitations for DATE is said that the smallest DATE value is 0001-01-01 and the largest DATE value is 9999-12-31.

      When the same manual explains the DATE function is said that:

      "The argument must be ... a positive number less than or equal to 2,932,897 ... The result is the date that is n-1 days after January 1, 0001, where n is the integral part of the number."

      Testing for the largest integer returns the expected result:

      select date(2932897) from SYSIBM.SYSDUMMY1 returns 9999-12-31 -> OK

      The problem comes when testing the smallest integer. We get a result different than we expect:

      select date(1) from SYSIBM.SYSDUMMY1 returns 1970-01-01, but it should have returned 0001-01-01

      The smallest date we get using integer as an argument to date function should be the same we get when using the smallest string representation as an argument. In other words date(1) should be equal to date('0001-01-01').

      select date('0001-01-01') from SYSIBM.SYSDUMMY1 returns 0001-01-01 -> OK

      Attachments

        1. docs.diff
          1 kB
          Bryan Pendleton
        2. rrefdatefunc.html
          4 kB
          Bryan Pendleton

        Issue Links

          Activity

            People

              bryanpendleton Bryan Pendleton
              nelsonr Nelson Rodrigues
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: