<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:70.85pt 85.05pt 70.85pt 85.05pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:159394374;
        mso-list-type:hybrid;
        mso-list-template-ids:406120360 2073701200 201981955 201981957 201981953 201981955 201981957 201981953 201981955 201981957;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:20.25pt;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Calibri;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:1434546463;
        mso-list-type:hybrid;
        mso-list-template-ids:2131276972 201981967 201981977 201981979 201981967 201981977 201981979 201981967 201981977 201981979;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=ES link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>Hi all,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:#1F497D'>I know that this is
an unixODBC mail list and my question is related to ODBC++ library but it was
impossible to me to find a forum dedicated to ODBC++ library. Sorry for any inconvenience.
&nbsp;I think Timestamp class has a bug &nbsp;and I&#8217;d be glad if somebody
could confirm (or not) my supposition. Any comment/suggestion is welcomed.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Next, I shortly describe the steps to
reproduce the problem, the problem description and the proposed fix:<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><b><u><span lang=EN-US>Steps to reproduce:<o:p></o:p></span></u></b></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
lang=EN-US><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>Create one DB (</span><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:maroon'>MY_DB</span><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>)</span><span
lang=EN-US>with one TIMESTAMP column &nbsp;called &#8220;timecol&#8221;<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><b><span
lang=EN-US><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span></b><![endif]><span lang=EN-US>Set the computer TimeZone
to &#8220;GMT+01:00 Madrid&#8221; <b>with DST activated<o:p></o:p></b></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
lang=EN-US><span style='mso-list:Ignore'>3.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>Write into the DB the timestamp
&#8220;</span><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>1225027900&#8221;;
it </span><span lang=EN-US>corresponds to:<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-autospace:none'><b><span lang=EN-US
style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>GMT </span></b><span
lang=EN-US style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>timezone<b>:&nbsp;&nbsp;&nbsp;
</b><span style='background:lime;mso-highlight:lime'>Sun, 26 Oct 2008 13:31:40
UTC</span></span><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>

<p class=MsoListParagraph><b><span lang=EN-US style='font-size:9.0pt;
font-family:"Verdana","sans-serif"'>Madrid </span></b><span lang=EN-US
style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>timezone: <span
style='background:yellow;mso-highlight:yellow'>Sunday, October 26, 2008 2:31:40
PM</span><o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US>The following piece of code is used
to save the timestamp:<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US>&#8230;.<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>std::time_t t = 1225027900;</span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.6pt;text-indent:35.4pt;text-autospace:
none'><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>odbc::PreparedStatement
*ins_stmt(prepareStatement(<span style='color:maroon'>&quot;insert into MY_DB
(\&quot;timecol\&quot;) values (?)&quot;</span>));<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.6pt;text-indent:35.4pt;text-autospace:
none'><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>ins_stmt-&gt;setTimestamp(
1, odbc::Timestamp(t));<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>ins_stmt-&gt;executeUpdate();<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&#8230;<o:p></o:p></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
lang=EN-US><span style='mso-list:Ignore'>4.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>Now, read from MY_DB:<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US>&#8230;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>odbc::PreparedStatement
*sel_stmt(conn-&gt;get()-&gt;prepareStatement( <span style='color:maroon'>&quot;select
* from MY_DB&quot;</span> ) );<o:p></o:p></span></p>

<p class=MsoNormal style='text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
odbc::ResultSet rset( sel_stmt-&gt;executeQuery() );<o:p></o:p></span></p>

<p class=MsoNormal style='text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<o:p></o:p></span></p>

<p class=MsoNormal style='text-autospace:none'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
odbc::Timestamp ts( rset-&gt;getTimestamp(1));<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>std::time_t <b><span style='color:red'>loadedFromDB</span></b> =
ts.getTime();<o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&#8230;<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='text-indent:-.25in;mso-list:l1 level1 lfo2'><![if !supportLists]><span
lang=EN-US><span style='mso-list:Ignore'>5.<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=EN-US>The value retrieved from DB of </span><b><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:red'>loadedFromDB
</span></b><b><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>should
be </span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>1225027900
but instead its value is 3600 seconds less, that is, 1225024300! </span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoListParagraph><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><b><u><span lang=EN-US>Problem description:<o:p></o:p></span></u></b></p>

<p class=MsoNormal><u><span lang=EN-US><o:p><span style='text-decoration:none'>&nbsp;</span></o:p></span></u></p>

<p class=MsoNormal><span lang=EN-US>Note: The 26<sup>th</sup> of October at
03:00 AM , Madrid&#8217;s TS, is when the transition from Daylight Saving Time
(DST) to Standard Time (ST) takes place. <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='margin-left:20.25pt;text-indent:-.25in;
mso-list:l0 level1 lfo4'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><b><span lang=EN-US>When writing data to the DB</span></b><span
lang=EN-US> the Timezone constructor calls setTime(std::time_t) which in turn
calls std::localtime. Thus, what we actually get saved into the DB is a local
time, i.e, in our particular case: </span><span lang=EN-US style='font-size:
9.0pt;font-family:"Verdana","sans-serif";background:yellow;mso-highlight:yellow'>Sunday,
October 26, 2008 2:31:40 PM</span><span lang=EN-US style='font-size:9.0pt;
font-family:"Verdana","sans-serif"'> which is correct taking into consideration
that Madrid&#8217;s TZ is one hour ahead GMT.</span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoListParagraph style='margin-left:20.25pt;text-indent:-.25in;
mso-list:l0 level1 lfo4'><![if !supportLists]><span lang=EN-US
style='font-family:Symbol'><span style='mso-list:Ignore'>&middot;<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><b><span lang=EN-US>When reading data back from
the DB </span></b><span lang=EN-US>we first retrieve an object &#8220;ts&#8221;
which holds exactly the date from the DB, i.e., </span><span lang=EN-US
style='font-size:9.0pt;font-family:"Verdana","sans-serif";background:yellow;
mso-highlight:yellow'>Sunday, October 26, 2008 2:31:40 PM</span><span
lang=EN-US style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>. So far,
so good. Now comes into play odbc::Tiemstamp::getTime() method which is
supposed to transform back the local time kept inside &#8220;ts&#8221; object
into UTC. Basically what it does is (for the sake of simplicity I won&#8217;t
show all code details):</span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoListParagraph style='margin-left:20.25pt'><span lang=EN-US
style='font-size:9.0pt;font-family:"Verdana","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='text-indent:20.25pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>time_t
Time::getTime() <span style='color:blue'>const<o:p></o:p></span></span></p>

<p class=MsoListParagraph style='margin-left:20.25pt'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>{</span><span lang=EN-US
style='font-size:9.0pt;font-family:"Verdana","sans-serif"'><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>tm stm;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_year=year_-1900;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_mon=month_-1;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_mday=day_;<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";background:red;
mso-highlight:red'>stm.tm_hour=0;&nbsp; //red row<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";background:red;
mso-highlight:red'>stm.tm_min=0; &nbsp;&nbsp;//red row<o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:35.4pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";background:red;
mso-highlight:red'>stm.tm_sec=0; &nbsp;&nbsp;//red row</span><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>

<p class=MsoNormal style='text-indent:20.25pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
stm.tm_isdst=-1; <span style='color:green'>//negative means not known<o:p></o:p></span></span></p>

<p class=MsoNormal style='text-indent:20.25pt;text-autospace:none'><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:green'><o:p>&nbsp;</o:p></span></p>

<p class=MsoListParagraph style='margin-left:20.25pt'><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>&nbsp; <span
style='color:blue'>return</span> std::mktime(&amp;stm) + second_ + minute_*60 +
hour_*3600;</span><span lang=EN-US style='font-size:9.0pt;font-family:"Verdana","sans-serif"'>
</span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<o:p></o:p></span></p>

<p class=MsoNormal><u><span lang=EN-US><o:p><span style='text-decoration:none'>&nbsp;</span></o:p></span></u></p>

<p class=MsoNormal><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
The problem we got here is easy to spot: std::mktime is passed 00:00 AM (see
the rows highlighted in red) that is, three hours before the DST takes place.
Therefore, std::mktime is unaware that the time we actually want to compute is
ST. If we passed day 27<sup>th</sup> instead of 26<sup>th</sup> , std::mktime
would return the correct result because the hours, minutes and seconds
wouldn&#8217;t matter to decide whether we have to deal with DST or ST! <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><b><u><span lang=EN-US>Proposed fix:<o:p></o:p></span></u></b></p>

<p class=MsoNormal><b><u><span lang=EN-US><o:p><span style='text-decoration:
 none'>&nbsp;</span></o:p></span></u></b></p>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
 style='border-collapse:collapse'>
 <tr style='height:14.6pt'>
  <td width=145 style='width:109.05pt;border:solid black 1.0pt;background:#D9D9D9;
  padding:0in 5.4pt 0in 5.4pt;height:14.6pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>File<o:p></o:p></span></p>
  </td>
  <td width=328 style='width:246.05pt;border:solid black 1.0pt;border-left:
  none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt;height:14.6pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>Code
  to be replaced<o:p></o:p></span></p>
  </td>
  <td width=258 style='width:193.5pt;border:solid black 1.0pt;border-left:none;
  background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt;height:14.6pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>Replacement<o:p></o:p></span></p>
  </td>
  <td width=248 style='width:186.35pt;border:solid black 1.0pt;border-left:
  none;background:#D9D9D9;padding:0in 5.4pt 0in 5.4pt;height:14.6pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>Add<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='height:91.0pt'>
  <td width=145 style='width:109.05pt;border:solid black 1.0pt;border-top:none;
  padding:0in 5.4pt 0in 5.4pt;height:91.0pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>libodbc++-0.2.3\include\odbc++
  \types.h<o:p></o:p></span></p>
  </td>
  <td width=328 style='width:246.05pt;border-top:none;border-left:none;
  border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt;
  height:91.0pt'>
  <p class=MsoNormal style='text-autospace:none'><span lang=EN-US
  style='font-size:10.0pt;font-family:"Courier New";color:green'>/** Gets the
  time_t value of this timestamp */<o:p></o:p></span></p>
  <p class=MsoNormal style='text-autospace:none'><span lang=EN-US
  style='font-size:10.0pt;font-family:"Courier New";color:blue'>virtual</span><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'> std::time_t
  &nbsp;Timestamp::getTime() {<o:p></o:p></span></p>
  <p class=MsoNormal style='text-autospace:none'><span lang=EN-US
  style='font-size:10.0pt;font-family:"Courier New";color:blue'>return</span><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>
  Date::getTime()+Time::getTime();<o:p></o:p></span></p>
  <p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>}</span><span
  lang=EN-US><o:p></o:p></span></p>
  </td>
  <td width=258 style='width:193.5pt;border-top:none;border-left:none;
  border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt;
  height:91.0pt'>
  <p class=MsoNormal style='text-autospace:none'><span lang=EN-US
  style='font-size:10.0pt;font-family:"Courier New";color:green'>/** Gets the
  time_t value of this timestamp */<o:p></o:p></span></p>
  <p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
  color:blue'>virtual</span><span lang=EN-US style='font-size:10.0pt;
  font-family:"Courier New"'> std::time_t getTime();</span><span lang=EN-US><o:p></o:p></span></p>
  </td>
  <td width=248 style='width:186.35pt;border-top:none;border-left:none;
  border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt;
  height:91.0pt'>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:green'>-<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='height:91.0pt'>
  <td width=145 style='width:109.05pt;border:solid black 1.0pt;border-top:none;
  padding:0in 5.4pt 0in 5.4pt;height:91.0pt'>
  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>libodbc++-0.2.3\src\
  datetime.cpp<o:p></o:p></span></p>
  </td>
  <td width=328 style='width:246.05pt;border-top:none;border-left:none;
  border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt;
  height:91.0pt'>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:green'>-<o:p></o:p></span></p>
  </td>
  <td width=258 style='width:193.5pt;border-top:none;border-left:none;
  border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt;
  height:91.0pt'>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:green'>-<o:p></o:p></span></p>
  </td>
  <td width=248 style='width:186.35pt;border-top:none;border-left:none;
  border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;padding:0in 5.4pt 0in 5.4pt;
  height:91.0pt'>
  <p class=MsoNormal style='text-autospace:none'><span lang=EN-US
  style='font-size:10.0pt;font-family:"Courier New"'>std::time_t
  Timestamp::getTime()<o:p></o:p></span></p>
  <p class=MsoNormal style='text-autospace:none'><span lang=EN-US
  style='font-size:10.0pt;font-family:"Courier New"'>{<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>tm stm;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_year=year_-1900;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_mon=month_-1;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_mday=day_;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_hour=hour_;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_min=minute_;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_sec=second_;<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>stm.tm_isdst=-1;
  <span style='color:green'>//negative means not known<o:p></o:p></span></span></p>
  <p class=MsoNormal align=center style='text-align:center;text-autospace:none'><span
  style='font-size:10.0pt;font-family:"Courier New";color:blue'>return</span><span
  style='font-size:10.0pt;font-family:"Courier New"'> mktime(&amp;stm);<o:p></o:p></span></p>
  <p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
  font-family:"Courier New"'>}</span><span lang=EN-US style='font-size:10.0pt;
  font-family:"Courier New";color:green'><o:p></o:p></span></p>
  </td>
 </tr>
</table>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Thanks for any help/suggestion,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Costin.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>