Skip to Content.
Sympa Menu

freetds - Re: [freetds] db-lib: support for new MS SQL 2008 data types - part 3

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: LacaK <lacak AT zoznam.sk>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] db-lib: support for new MS SQL 2008 data types - part 3
  • Date: Mon, 19 May 2014 13:55:01 +0200

LacaK wrote / napĂ­sal(a):

May be that it is not related, but I noticed that FreeTDS converts "datetimeoffset" to "datetime2" bit different than does SQL Server.
For example we have any table "t" with "datetimeoffset" column named "dto", with value : '2014-05-19 12:50:00 +01:00'

When I do in SQL Server:
select dto, cast(dto as datetime2) as dt2 from t;

I receive:
dto dt2
------------------------------------------------------
2014-05-19 12:50:00 +01:00 2014-05-19 12:50:00

Which corresponds to: http://msdn.microsoft.com/en-us/library/bb630289.aspx
Where is stated: "The date and time are copied to the datetime2 value, and the time zone is truncated."

But when I am trying use dbconvert() which calls tds_convert() for srctype=SYBMSDATETIMEOFFSET to desttype=SYBMSDATETIME2 then I receive UTC datetime (shifted by time zone offset)

So converting (casting) in SQL Server is different from that used in FreeTDS ... is it as expected ?
It is okay, as far as there is "offset" field in TDS_DATETIMEALL which holds time zone offset in minutes.
I have expected, that when I am converting to SYBMSDATETIME2 then I must evaluate only "date" and "time" fields (because datetime2 data type does not hold time zone information) ... so I overlooked "offset" field, because I have "wrongly" expected, that it will be zero for SYBMSDATETIME2.
So it is okay for me.
Thanks
-Laco.





Archive powered by MHonArc 2.6.24.

Top of Page