in reply to DBD-InterBase: different date/time formats

I haven't worked with InterBase specifically, but my guess is that DBD::Interbase is now paying attention to the locale that it is in, and trying to provide the data in a format appropriate to that locale.

You can test this on the Windows box by telling it you're in Europe (Control Panel/Settings/Regional and Language Options on XP), and running the same program again. I expect you'll get a date with the month and day transposed, or with the year first.

If that happens, then you just need to determine how DBD::Interbase determines the locale, and how you can set the machines to the same locale, or override the system setting.

Another option would be to change the query to do the formatting for you. For example, the PostgreSQL to_char() function would allow you to specify the output format in the query, so that both clients would get a string in the exact same format. Simply converting the date to a string as part of the query might be enough to get it into a consistent format, too.

--
Spring: Forces, Coiled Again!
  • Comment on Re: DBD-InterBase: different date/time formats

Replies are listed 'Best First'.
Re^2: DBD-InterBase: different date/time formats
by pet (Novice) on Jun 23, 2004 at 08:15 UTC

    Hi everybody,

    with your help (thanks to paulbort, pgor, digger) I "figure it" out - found the solution, like previously mentioned monks said/posted to my question!

    So, I noticed that my so called problem was because of "undefined" date/time format of the DBD-InterBase driver, but after changing (or should I say adding) this before the prepare method, solved the problem:

    . . . #desired format: day.month.year Hour:Minutes:Seconds $dbh->{ib_timestampformat} = '%d.%m.%Y %H:%M:%S'; $sth = $dbh->prepare($query); . . .
    or even (what is the same!):
    . . . $attr = { ib_timestampformat => '%d.%m.%Y %H:%M:%S' }; $sth = $dbh->prepare($query, $attr); . . .

    Thanx again to all of you!

    Regards, Pet.