BUG: Assigning datetime to smalldatetime May Change Value (118877)



The information in this article applies to:

  • Microsoft SQL Server 4.2x

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.

Modification Type:MinorLast Reviewed:3/14/2005
Keywords:kbProgramming KB118877