Problem Note 33649: Calculations that involve DBMS datetime values can return incorrect results
Calculations in a WHERE clause involving double-byte character set (DBMS) columns that are defined as datetime values can return incorrect results.
This problem occurs when a DBMS datetime column is listed in the SELECT clause and the column is aliased. The alias prevents the column's type from being identified as a datetime value in the operation.
This problem has occurred in left and right outer joins when the calculation is performed in a WHERE clause.
Select the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SAS System | Base SAS | z/OS | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows XP 64-bit Edition | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft® Windows® for x64 | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Datacenter Edition | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Enterprise Edition | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows Server 2003 Standard Edition | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Microsoft Windows XP Professional | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Windows Vista | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
64-bit Enabled AIX | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
64-bit Enabled HP-UX | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
64-bit Enabled Solaris | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
HP-UX IPF | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Linux | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Linux on Itanium | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
OpenVMS Alpha | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Solaris for x64 | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
Tru64 UNIX | 9.1 TS1M3 SP4 | 9.2 TS1M0 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
This illustrates the type of query which returns incorrect results and is not intended to executed.
proc sql ;
create table work.test as
select distinct
table0.name as name,
table1.dtime as dtime
from
lib1.class1 table0
left join
lib2.class2 table1
on (table0.name = table1.name and table0.age = table1.age)
where
(table1.dtime - '11nov1969:12:28:00'dt = 120);
quit;
Type: | Problem Note |
Priority: | high |
Date Modified: | 2008-10-24 14:14:40 |
Date Created: | 2008-10-15 07:55:04 |