Hi Dave,
Yes, they get different results.
For T2 , it gets String like "2016-03-32".  As the code, in T2 code , we
need treat date type as VARCHAR_WITH_LENGTH. It looks t2 use varchar to
store date type since some history reason which I don't know.

For mxosrvr , it gets the binary 4 bytes as it stored.

My problem is in MT-DCS. MTDCS need to give the date value to client as the
format which mxosrvr giving to client now.  So I don't want the varchar
type.

I will continue to compare the logic of T2 and mxosrvr to find the root
cause of the difference . I think it will be very useful if somebody can
give me some hints or some history information.

Best Regards,
Weiqing

On Fri, Apr 1, 2016 at 12:36 AM, Dave Birdsall <[email protected]>
wrote:

> Hi Weiqing,
>
> It might help if I could understand what problem you are trying to solve.
>
> I imagine that both the T2 driver and mxosrvr would be calling the same
> sqlcli functions to retrieve dates. Is there some problem where the two
> code
> paths are getting different results?
>
> Dave
>
> -----Original Message-----
> From: Weiqing Xu [mailto:[email protected]]
> Sent: Thursday, March 31, 2016 2:36 AM
> To: [email protected]
> Subject: Re: How to get date from sqlci in binary format
>
> Hi Dave,
> I have spent some time to add some debug information in mxosrvr. I want to
> get the format of the date as the format stored in the databsae.
>
> For date: " DATE specifies a datetime column that contains a date in the
> external form yyyy-mm-dd and stored in four bytes."
>
> But in T2, I can only the the string like "2016-03-31".
>
> I am compare the code of  T2 and mxosrvr now. I think I need a lot of time
> to find the root cause. It will reduce the time if someone can give me some
> information.
>
> Best Regards,
> Weiqing
>
> Best Regards,
> Weiqing
>
> On Thu, Mar 24, 2016 at 11:42 PM, Dave Birdsall <[email protected]>
> wrote:
>
> > Hi Weiqing,
> >
> > Can you say more about what you mean by "binary format"? For example,
> > are you looking for a value such as the Unix/Linux time() function
> > returns?
> >
> > Dave
> >
> > -----Original Message-----
> > From: Hans Zeller [mailto:[email protected]]
> > Sent: Thursday, March 24, 2016 12:06 AM
> > To: dev <[email protected]>
> > Subject: Re: How to get date from sqlci in binary format
> >
> > Hi again,
> >
> > Sorry, no, I don't know how to prevent that conversion to a string
> > from happening. As far as I know, the CLI will always transfer
> > datetime values as a string.
> >
> > Hans
> >
> > On Wed, Mar 23, 2016 at 11:56 PM, Weiqing Xu <[email protected]>
> > wrote:
> >
> > > H Hans,
> > >
> > > Thanks for your quickly response.
> > >
> > > But I want to get the Binary datetime from the sqlcli directly
> > > rather than converting it in jdbc driver layer.
> > >
> > > In JDBC T2 , it use CLI_SetDescItem() to get the data from sqlcli.
> > > When give the parameter "SQLDESC_VAR_PTR", it will get the value of
> > > the item.
> > > Now , JDBC T2 will get a string format datetime through this function .
> > > What I want to do is getting the binary datetime from this function.
> > > Do you have any idea?
> > >
> > > Best Regards,
> > > Weiqing
> > >
> > > On Thu, Mar 24, 2016 at 2:35 PM, Hans Zeller <[email protected]>
> > > wrote:
> > >
> > > > Hi Weiqing,
> > > >
> > > > Here is a code fragment from the UDF code that converts a string
> > > > to the Java "Date" type, taken from
> > > >
> > > >
> > > https://github.com/apache/incubator-trafodion/blob/master/core/sql/s
> > > rc /main/java/org/trafodion/sql/udr/TupleInfo.java
> > > >
> > > >             Date resultDate;
> > > >
> > > >             String val = getString(colNum);
> > > >             if (wasNull_)
> > > >                 return new Date(0);
> > > >             DateFormat df;
> > > >
> > > >             try {
> > > >                 switch (t.getSQLType())
> > > >                 {
> > > >                 case DATE:
> > > >                     // yyyy-mm-dd
> > > >                     df = new SimpleDateFormat ("yyyy-MM-dd");
> > > >                     resultDate = df.parse(val);
> > > >                     break;
> > > >
> > > >                 case TIME:
> > > >                     df = new SimpleDateFormat ("HH:mm:ss");
> > > >                     resultDate = df.parse(val);
> > > >                     break;
> > > >
> > > >                 case TIMESTAMP:
> > > >                     df = new SimpleDateFormat ("yyyy-MM-dd
> HH:mm:ss");
> > > >                     resultDate = df.parse(val);
> > > >                     break;
> > > >
> > > >                 default:
> > > >                     throw new UDRException(38900,
> > > >                                            "getTime() not
> > > > supported for
> > > SQL
> > > > type %d",
> > > >                                            t.getSQLType().ordinal());
> > > >                 }
> > > >             }
> > > >             catch (java.text.ParseException e1) {
> > > >                 throw new UDRException(
> > > >                                        38900,
> > > >                                        "Unable to parse datetime
> > > > string
> > > %s
> > > > for conversion to Date",
> > > >                                        val);
> > > >             }
> > > >
> > > >
> > > >
> > > > Note that some of the enums, Exceptions and variables won't match
> > > > your case, but I hope the general idea is useful.
> > > >
> > > > Hans
> > > >
> > > > On Wed, Mar 23, 2016 at 11:27 PM, Weiqing Xu
> > > > <[email protected]>
> > > > wrote:
> > > >
> > > > > Hi All,
> > > > >
> > > > > As default, sqlcli return DATE value in *String format* in JDBC
> > > > > T2
> > > > Driver.
> > > > > I want to get the DATE in Binary format since MT-DCS need use
> > > > > JDBC
> > > > > t2 Driver.
> > > > >
> > > > > Does anyone know how to do it ?
> > > > >
> > > > > By the way, mxosrvr get the DATE value as Binary from SQLCLI ,
> > > > > so I
> > > think
> > > > > it's possible as jdbc t2 too.
> > > > >
> > > > > Best Regards,
> > > > > Weiqing
> > > > >
> > > >
> > >
> >
>

Reply via email to