Oracle JD Edwards · AS/400

JD Edwards Julian Date Converter

JD Edwards stores dates as CYYDDD — a century digit, a two-digit year, and the day of year. That is not the same as the usual YYYYDDD Julian date, so a normal converter will decode it wrongly. Today is 2026260 in standard form and 126260 in JDE form.

5 or 6 digits, e.g. 126260 or 99365

Pick a date to get its CYYDDD value

How CYYDDD works

The format packs three things into one number:

  • C — centuries since 1900. 0 = 1900s, 1 = 2000s, 2 = 2100s.
  • YY — the year within that century, 0099.
  • DDD — the day of the year, 001366.

So 126260 reads as century 1 → 2000s, year 26 → 2026, day 260 → 17 September. The full year is 1900 + (C × 100) + YY.

Worked examples

CYYDDDCalendar dateWhy
126260 September 17, 2026 C=1 (2000s), YY=26, DDD=260
125001 January 1, 2025 The first day of 2025
124366 December 31, 2024 2024 is a leap year — day 366 exists
99365 December 31, 1999 Stored as a number, so the leading 0 is gone
100001 January 1, 2000 The century digit rolls to 1

The five-digit trap

JD Edwards holds these values in numeric columns, not text. A date in the 1900s has C = 0, and a leading zero in a number simply does not exist — so 099365 comes out of the database as 99365. Pad any JDE date to six digits before you parse it and the ambiguity disappears. The converter above does this for you.

Related formats

Frequently asked questions

What does the C in CYYDDD mean?

It is the number of centuries since 1900. C=0 means the 1900s, C=1 means the 2000s, C=2 means the 2100s. So 126260 is century 1 (2000s), year 26, day 260 — 17 September 2026.

Why is my JDE date only 5 digits?

JD Edwards stores the value in a numeric column, so a 20th-century date with C=0 loses its leading zero. 099365 comes back as 99365. Pad it to six digits before parsing and it decodes normally.

Is the JDE Julian date the same as a normal Julian date?

No, and this trips people up constantly. A standard day-of-year Julian date is YYYYDDD (2026260) or YYDDD (26260). The JDE form is CYYDDD (126260) — a different length with a century digit instead of a full year. Feeding a JDE value into a normal converter gives the wrong answer.

Which JDE tables use this format?

All of the standard date columns — for example the update and creation dates in F0101, the ledger dates in F0911, and order dates in F4211. Any column whose data dictionary type is JDEDATE holds a CYYDDD value.

How do I convert CYYDDD in SQL?

Add 1900000 to the numeric value to get a YYYDDD-style number, then split it. On Oracle: TO_DATE(TO_CHAR(1900000 + jdedate), 'YYYYDDD'). See the SQL page for versions in T-SQL, PostgreSQL and MySQL.