[AccessD] Updating DateTime Field IN SQL Server With Just The Time

Stuart McLachlan stuart at lexacorp.com.pg
Wed Oct 18 17:47:53 CDT 2006


DateTime and SmallDateTime data in SQL Server are stored  in two parts, the 
hi bytes store the date as an offset from '1/1/1900" and the low bytes 
store the time as a number of seconds or milliseconds after midnight.  

Unfortunately this differs from Access which uses "31-12-1899" as Day 0.  
So, if you try to store "08:30" through an Access recordset or it directly 
into a linked table, Access stores you "time only" as "31-12-1899 08:30".
If you do it as through an SP, SQL Server stores it as "1-1-1900 08:30"

When working between Access and SQL Server, you need take this one day 
difference into account if you are manipulating just the time parts of the 
data, either by adding/subtracting 1 from the data or more generally, 
taking only the fractional part of the data when it is Read.

On 18 Oct 2006 at 16:00, paul.hartland at fsmail.net wrote:

> Gustav,
> 
> Here's a test one I have been playing with, can't get more simple
> really....Even tried using CONVERT in the stored procedure and Format from
> Visual Basic 6.0 CREATE PROCEDURE [insert_timetable_1]
>  (@TestTime_1  [datetime])
> AS INSERT INTO [Genesis].[dbo].[timetable] 
>   ( [TestTime]) 
> 
> VALUES 
>  ( @TestTime_1)
> GO
> 
> The date is always 01/01/1900
> 
> Paul
> 
> 
> 
> 
> Message Received: Oct 18 2006, 01:44 PM
> From: "Gustav Brock" 
> To: accessd at databaseadvisors.com
> Cc: 
> Subject: Re: [AccessD] Updating DateTime Field IN SQL Server With Just The
> Time
> 
> Hi Paul
> 
> So what does your stored procedure look like?
> Which date is stored with the time? Today's date?
> 
> /gustav
> 
> >>> paul.hartland at fsmail.net 18-10-2006 13:51:46 >>>
> To all,
> 
> I have a little problem which I am sure this group can tell me the answer
> to....I have a datetime field in SQL Server 2000 I have an insert stored
> procedure which I pass the time to to put into the table, however it always
> puts the date in front of the time....I can input the time directly and no
> date gets put in front, I can also use a recordset with an update which
> works (but is slower)....Is there anyway I can insert a time into a datetime
> field in SQL Server 2000 without it putting the date in front using a stored
> procedure.
> 
> Thanks in advance for any help on this as it's driving me nuts.
> 
> 
> Paul Hartland 
> paul.hartland at fsmail.net 
> 07730 523179
> 
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 
> 
> 
> 
> 
> Paul Hartland 
> paul.hartland at fsmail.net 
> 07730 523179
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

-- 
Stuart





More information about the AccessD mailing list