Microsoft KB Archive/118877

From BetaArchive Wiki
Knowledge Base


BUG: Assigning datetime to smalldatetime May Change Value

Article ID: 118877

Article Last Modified on 3/14/2005



APPLIES TO

  • Microsoft SQL Server 4.21a Standard Edition



This article was previously published under Q118877

BUG# OS/2: 1875 (4.2)
       NT:  864 (4.2)
        

SYMPTOMS

The value of a datetime type local variable or parameter of a stored procedure could be changed after assigning it to a smalldatetime variable. It happens only on values between 11:59:30pm and 11:59:59pm. The value will be changed to 12:00:XXam on the next day.

For example,

   declare @time datetime
   declare @s_time smalldatetime

   select @time = "July 26,1994 11:59:59pm"
   select convert(char(40), @time, 9)
   select @s_time = @time
   select convert(char(40), @s_time, 9)
   select convert(char(40), @time, 9)
   go
                


would change the value for @time from "Jul 26 1994 11:59:31:000PM" to "Jul 27 1994 12:00:31:000AM."

WORKAROUND

If the value could fall into this range, assign it only to datetime instead of smalldatetime variables.

STATUS

Microsoft has confirmed this to be a problem in Microsoft SQL Server version 4.2. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Keywords: kbprogramming KB118877