• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • Exporting DB2/400 Dates to Excel

    January 10, 2007 Jeff Haddix

    In order for Microsoft‘s Excel spreadsheet to recognize the set of values for a column as dates, those values must be stored as a number of days. For example, to export the date December 26, 2006, to an Excel spreadsheet, you should export the number 37,066, not a date value like 12/26/2006 or 2006-12-26. However, due to an acknowledged defect in Excel, be aware of the following.

    Even though Excel claims that 01/01/1900 equates to Day 1, for most purposes it is necessary to actually use 12/31/1899 as Day 1. Otherwise, a one-day discrepancy will occur when converting IBM DB2 dates (where Day 1 is 01/01/0001) after 02/28/1900 into Excel.

    The reason is that Excel does not accurately apply the leap year calculation, while IBM does. The frequently ignored part of the calculation is that century years (1700, 1800, 1900, and so forth) are not leap years, even though they are multiples of four. The exception to that rule is that every 400 years (1200, 1600, 2000, etc.) the century year is a leap year.

    As such, February 1900 only had 28 days. However Excel erroneously includes a 29th day, thus creating a one-day offset for all subsequent date conversions.

    In the simple test below, a short series of integers was keyed and then those cells were formatted as dates. Notice that Excel improperly converts day 60 to 2/29/1900, which is a non-existent date, thus creating a one-day offset for all subsequent integer date conversions.

    The following SQL query demonstrates how to derive Excel compatible dates from columns defined as either legacy packed-decimal date values or with a DATE datatype.

    select   DECIMAL_DATE,                                           
               days( date( substr(digits(DECIMAL_DATE),1,4) || '-' ||
                           substr(digits(DECIMAL_DATE),5,2) || '-' ||
                           substr(digits(DECIMAL_DATE),7,4) ) )      
             - days( date('1899-12-30') )  as DAYS_FROM_DECIMAL_DATE,
             ISO_DATE,                                               
               days( ISO_DATE)                                       
             - days( date('1899-12-30') )  as DAYS_FROM_ISO_DATE     
    from     DATETABLE 
    order by 1 desc
    

    This will return a result set similar to the following.

    DECIMAL_DATE  DAYS_FROM_DECIMAL_DATE  ISO_DATE    DAYS_FROM_ISO_DATE
     2006/12/26              39,077       2006-12-26            39,077  
     2006/12/17              39,068       2006-12-17            39,068  
     2006/12/01              39,052       2006-12-01            39,052  
     2006/02/01              38,749       2006-02-01            38,749  
     2006/01/01              38,718       2006-01-01            38,718  
     2003/05/11              37,752       2003-05-11            37,752  
     2003/05/01              37,742       2003-05-01            37,742  
     2003/04/22              37,733       2003-04-22            37,733  
     2003/04/15              37,726       2003-04-15            37,726  
     2003/04/01              37,712       2003-04-01            37,712  
     2003/03/01              37,681       2003-03-01            37,681  
     2003/02/08              37,660       2003-02-08            37,660  
     2003/01/15              37,636       2003-01-15            37,636  
     2003/01/06              37,627       2003-01-06            37,627  
     2003/01/02              37,623       2003-01-02            37,623  
     2003/01/01              37,622       2003-01-01            37,622  
     2002/12/15              37,605       2002-12-15            37,605  
     2002/12/10              37,600       2002-12-10            37,600  
    

    Happy date data exporting, everyone.

    Jeff Haddix is the software architect at Alliance Data, which provides application software for utility companies. He can be reached at jeff_haddix@yahoo.com.



                         Post this story to del.icio.us
                   Post this story to Digg
        Post this story to Slashdot

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags:

    Sponsored by
    OCEAN User Group

    OCEAN TechCon25 Online

    It’s an Exciting Time for IBM i !

    July 16 & 17, 2025 – ONLINE

    Two virtual days of learning, presented by an outstanding group of IBM’ers and IBM Champions, featuring leading-edge topics.

    FREE for OCEAN members!

    Register NOW!

    Annual (12-month) Individual OCEAN Memberships are $80 and a Corporate Membership is $250. A Corporate Membership would allow your entire company to have full access to the OCEAN website & video library and to attend OCEAN events at member rates. Act now because rates are increasing on August 1, 2025.

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Sponsored Links

    COMMON:  Join us at the Annual 2007 Conference & Expo, April 29 - May 3, in Anaheim, California
    Bytware:  StandGuard Network Security 3.0, the next generation of System i security
    Asymex:  Control spool files automatically with SpooliT - intelligent iSeries spool file management

    Global Signs Terillium to Resell Spreadsheet Server Original Adds Some Manual Features to Testing Suite

    Leave a Reply Cancel reply

Volume 7, Number 1 -- January 10, 2007
THIS ISSUE SPONSORED BY:

ProData Computer Services
SEQUEL
CYBRA

Table of Contents

  • Exporting DB2/400 Dates to Excel
  • Resetting Your QSECOFR Service Tools Password
  • Admin Alert: Combating Cross-Server Failures for the i5 Manager

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • With Power11, Power Systems “Go To Eleven”
  • With Subscription Price, IBM i P20 And P30 Tiers Get Bigger Bundles
  • Izzi Buys CNX, Eyes Valence Port To System Z
  • IBM i Shops “Attacking” Security Concerns, Study Shows
  • IBM i PTF Guide, Volume 27, Number 26
  • Liam Allan Shares What’s Coming Next With Code For IBM i
  • From Stable To Scalable: Visual LANSA 16 Powers IBM i Growth – Launching July 8
  • VS Code Will Be The Heart Of The Modern IBM i Platform
  • The AS/400: A 37-Year-Old Dog That Loves To Learn New Tricks
  • IBM i PTF Guide, Volume 27, Number 25

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle