Пример #1
0
VALUE oci8_make_ocitimestamp(OCIDateTime *dttm, boolean have_tz)
{
    sb2 year;
    ub1 month;
    ub1 day;
    ub1 hour;
    ub1 minute;
    ub1 sec;
    ub4 fsec;
    sb1 tz_hour;
    sb1 tz_minute;

    chkerr(OCIDateTimeGetDate(oci8_envhp, oci8_errhp, dttm, &year, &month, &day));
    chkerr(OCIDateTimeGetTime(oci8_envhp, oci8_errhp, dttm, &hour, &minute, &sec, &fsec));
    if (have_tz) {
        chkerr(OCIDateTimeGetTimeZoneOffset(oci8_envhp, oci8_errhp, dttm, &tz_hour, &tz_minute));
    }
    return rb_ary_new3(9,
                       INT2FIX(year),
                       INT2FIX(month),
                       INT2FIX(day),
                       INT2FIX(hour),
                       INT2FIX(minute),
                       INT2FIX(sec),
                       INT2FIX(fsec),
                       have_tz ? INT2FIX(tz_hour) : Qnil,
                       have_tz ? INT2FIX(tz_minute) : Qnil);
}
Пример #2
0
 void Datetime::ociGetTime(ub1 &hour, ub1 &min, ub1 &sec, ub4 &fsec) const
 {
   log_debug("OCIDateTimeGetTime(" << datetime << ')');
   sword ret = OCIDateTimeGetTime(conn->getEnvHandle(), conn->getErrorHandle(),
     datetime, &hour, &min, &sec, &fsec);
   conn->checkError(ret, "OCIDateTimeGetTime");
 }
Пример #3
0
VALUE oci8_make_ocitimestamp_tz(OCIDateTime *dttm)
{
    sb2 year;
    ub1 month;
    ub1 day;
    ub1 hour;
    ub1 minute;
    ub1 sec;
    ub4 fsec;
    sb1 tz_hour;
    sb1 tz_minute;
    sword rv;
    int have_tz;

    oci_lc(OCIDateTimeGetDate(oci8_envhp, oci8_errhp, dttm, &year, &month, &day));
    oci_lc(OCIDateTimeGetTime(oci8_envhp, oci8_errhp, dttm, &hour, &minute, &sec, &fsec));
    rv = OCIDateTimeGetTimeZoneOffset(oci8_envhp, oci8_errhp, dttm, &tz_hour, &tz_minute);
    have_tz = (rv == OCI_SUCCESS);
    return rb_ary_new3(9,
                       INT2FIX(year),
                       INT2FIX(month),
                       INT2FIX(day),
                       INT2FIX(hour),
                       INT2FIX(minute),
                       INT2FIX(sec),
                       INT2FIX(fsec),
                       have_tz ? INT2FIX(tz_hour) : Qnil,
                       have_tz ? INT2FIX(tz_minute) : Qnil);
}