DB2 - Problem description
Problem IC83680 | Status: Closed |
WRONG RESULTS FROM CONVERTING A TIMESTAMP FIELD TO A STRING TYPE WITH THE ISO WEEK FORMAT SPECIFICATION 'IW' | |
product: | |
DB2 FOR LUW / DB2FORLUW / A10 - DB2 | |
Problem description: | |
When using the IW option of the format string syntax of converting a timestamp to an iso week, a query may incorrectly return the iso week of 53, when the correct answer should have been 52. For example: db2 values to_char(TIMESTAMP('2011-01-01'),'IW'); 1 ----------------------- 53 1 record(s) selected. The correct answer here should have been 52. This incorrect result will only occur if ALL of the following conditions are true: 1. The date being converted is one of the first few days of the year such that these days actually belong to the last ISO week of the previous year. 2. Jan 1st of this year falls on a Saturday. 3. Jan 1st of the previous year is not a Thursday. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * ALL * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 Version 10.1 Fix Pack 1. * **************************************************************** | |
Local Fix: | |
Instead of using the IW format string directly, the function week_iso() can be used instead, and then convert that answer to a char. for example: db2 values to_char(week_iso(TIMESTAMP('2011-01-01'))) | |
Solution | |
First fixed in DB2 Version 10.1 Fix Pack 1. | |
Workaround | |
not known / see Local fix | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 23.05.2012 21.11.2012 21.11.2012 |
Problem solved at the following versions (IBM BugInfos) | |
Problem solved according to the fixlist(s) of the following version(s) |