VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

DateTime类型接口

OCIDateTimeToText

功能描述

将DateTime数据类型数据转换为指定格式的字符串。

功能说明

将DateTime数据类型数据转换为指定格式的字符串。

接口信息

函数/过程

OCIDateTimeToText语法如下:

sword OCIDateTimeToText (
 			      void                *hndl, 
                          OCIError            *err, 
                          const OCIDateTime   *date, 
                          const OraText       *fmt,
                          ub1                  fmt_length, 
                          ub1                  fsprec,
                          const OraText       *lang_name, 
                          size_t               lang_length, 
                          ub4                 *buf_size, 
                          OraText             *buf 
)

具体参数解释如下:

  • hndl(IN):OCI 用户会话句柄或环境句柄。如果传递了用户会话句柄,则转换发生在会话的NLS_LANGUAGE和会话的NLS_CALENDAR; 否则,使用默认值。
  • err(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • date(IN):要转换的OCIDateTime类型数据。
  • fmt(IN):转换格式。如果fmt时NULL指针、(text *)0,则日期将转换成该类型默认格式的字符串。

    • 目前只支持“dd”表示日,“mm”表示月,“yyyy”表示年,“hh”表示时,“mi”表示分,“ss”表示秒,“fra”表示毫秒,“@TH:TM”表示时区;例如:“dd mm yyyy:hh mi ss, fra, @TH:TM”
    • 时区字段只能放到最后,并且一定要存在,其他字段没有顺序要求,字段之间的分隔符也没有严格要求。放到之前不会提示报错但是输出的结果不准确。
    • 对于没有时区的数据,在转换之后结果的格式会有一定的差错。
  • fmt_length(IN):fmt参数的长度,不能为0。

  • fsprec(IN):指定返回毫秒值的精度,目前暂不支持指定。

  • lang_name(IN):指定返回月份和日期的名称和缩写所使用的语言。lang_name如果是NULL( lang_name= ( OraText * ) 0) ,则使用会话的默认语言。目前暂不支持指定。

  • lang_length(IN):lang_name参数的长度,目前暂不支持指定。

  • buf_size(IN\OUT):buf缓冲区的大小,转换后的结果字符串的大小。

  • buf(IN):转换后的字符串所在的缓冲区,不能为NULL。

其他说明

OCIDateTimeFromText

功能描述

根据指定格式,将指定字符串转换为OCIDateTime数据类型。

功能说明

根据指定格式,将指定字符串转换为OCIDateTime数据类型。

接口信息

函数/过程

OCIDateTimeFromText 语法如下:

sword OCIDateTimeFromText ( void               *hndl,
OCIError           *err, 
const OraText      *date_str,
size_t              dstr_length,
 const OraText      *fmt,
 ub1                 fmt_length, 
const OraText      *lang_name,
   size_t              lang_length, 
  OCIDateTime        *datetime );

参数的解释如下:

  • err(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息
  • date(IN):要装换的OCIDate类型的日期;
    • 毫秒需要补齐9位;例如:500000000表示半秒;
    • 每个字段之间统一使用分隔符,例如:“2024 12 13 05 05 05 500000000 -08:00”。
  • fmt(IN):转换成的格式。如果为NULL、(text*)0,则日期将装换成默认格式“DD-MON-YY”的字符串。
  • 目前只支持一种格式“yyyy mm dd hh mi ss ff @th:tm”;“dd”表示日,“mm”表示月,“yyyy”表示年,“hh”表示时,“mi”表示分,“ss”表示秒,“ff”表示毫秒,“th:tm”表示时区,“@”表示时区正负;
  • fmt_length(IN):fmt的长度。
  • lang_name(IN):指定返回月份和日期的名称的缩写的语言;lang_name如果为NULL、(text*)则会使用默认语言。目前暂不支持。
  • lang_length(IN):lang_name的长度,目前暂不支持。
  • datetime (out):转换成的datetime指针,不能为NULL。

其他说明

OCIDateTimeConstruct

功能描述

构造一个datetime描述符。

功能说明

根据给定的字符串以及字符串格式,将字符串转换成日期时间类型。

接口信息

函数/过程

OCIDateTimeConstruct 语法如下:

sword OCIDateTimeConstruct (
 void          *hndl,
OCIError      *err,
 OCIDateTime   *datetime,
 sb2            year,
  ub1            month,
  ub1            day,
  ub1            hour,
  ub1            min,
  ub1            sec,
  ub4            fsec,
  OraText       *timezone,
   size_t         timezone_length 
)

参数的解释如下:

  • hndl(IN):用户会话句柄或者环境句柄。
  • err(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • datetime(out):构造的datetimt指针。
  • year(IN):年值。
  • month(IN):月值。
  • day(IN):日值。
  • hour(IN):小时值。
  • min(IN):分钟值。
  • sec(IN):秒值。
  • fsec(IN):毫秒值。
  • timezone(IN):时区字符串。时区偏移的字符串表示是本地时间和 UTC(协调世界时 - 以前的格林威治标准时间)之间的差异(以小时和分钟为单位),格式为“[+|-][HH:MM]”。例如,“-08:00”。
  • timezone_length(IN):时区字符串长度。

其他说明

OCIDateTimeGetTime

功能描述

获取DateTime数据的时间(时、分、秒、毫秒)。

功能说明

获取DateTime数据的时间(时、分、秒、毫秒)。

接口信息

函数/过程

OCIDateFromText语法如下:

sword OCIDateTimeGetTime ( 
void          *hndl, 
                           OCIError      *err, 
                           OCIDateTime   *datetime, 
                           ub1           *hour,
                           ub1           *min, 
                           ub1           *sec, 
                           ub4           *fsec 
)

参数的解释如下:

  • hndl(IN):用户会话句柄或者环境句柄。
  • err(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • datetime(IN):指向OCIDateTime指针(从中检索时间信息的描述符指针)。
  • hour(OUT):检索到的小时值。
  • min(OUT):检索到的分钟值。
  • sec(OUT):检索到的秒值。
  • fsec(OUT):检索到的毫秒值。

其他说明

OCIDateTimeGetDate

功能描述

获取DateTime值的日期(年、月、日)部分。

功能说明

获取DateTime值的日期(年、月、日)部分。

接口信息

函数/过程

OCIDateTimeGetDate 语法如下:

sword OCIDateTimeGetDate ( 
void               *hndl,
                           OCIError           *err, 
                           const OCIDateTime  *datetime,
                           sb2                *year, 
                           ub1                *month, 
                           ub1                *day 
)

参数的解释如下:

  • hndl(IN):用户会话句柄或者环境句柄。
  • err(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • datetime(IN):指向OCIDateTime指针(从中检索时间信息的描述符指针)。
  • year(OUT):检索到的年值。
  • month(OUT):检索到的月值。
  • day(OUT):检索到的日值。

其他说明

OCIDateTimeGetTimeZoneOffset

功能描述

获取DateTime值的时区(小时、分钟)部分。

功能说明

获取DateTime值的时区(小时、分钟)部分。

接口信息

函数/过程

OCIDateTimeGetTimeZoneOffsett语法如下:

sword OCIDateTimeGetTimeZoneOffset ( 
void               *hndl, 
                                     OCIError           *err, 
                                     const OCIDateTime  *datetime, 
                                     sb1                *hour,
                                     sb1                *min, 
)

参数的解释如下:

  • hndl(IN):用户会话句柄或者环境句柄。
  • err(IN):错误句柄,可以通过OCIErrorGet()诊断错误信息。
  • datetime(IN):指向OCIDateTime指针(从中检索时间信息的描述符指针),不能为空。
  • hour(OUT):检索到的时区的小时值。
  • min(OUT):检索到的时区的分钟值。

其他说明

OCIDateTimeAssign

功能描述

完成日期时间赋值。

功能说明

完成日期时间赋值。

接口信息

函数/过程

语法如下:

sword OCIDateTimeAssign( void   *hndl,
            OCIError    *err,
            const OCIDateTime    *from,
            OCIDateTime    *to)

参数的解释如下:

  • hndl(IN):OCI用户会话句柄或环境句柄。若传入一个用户会话句柄,则转换工作发生在该会话的 NLS_LANGUAGE 和该会话的NLS_CALENDAR,否则利用默认设置。

  • err(IN/OUT):OCI错误句柄。若有错误就记录在err中,并且由该函数返回OCI_ERROR,调用OCIErrorGet()获得错误的诊断信息。

  • from(IN):分配原(rhs)时间。

  • to(OUT):指定的目标(lhs)。

其他说明

OCIDateTimeCheck

功能描述

检测给定的日期时间是否有效。

功能说明

检测给定的日期时间是否有效。

接口信息

函数/过程

语法如下:

sword OCIDateTimeCheck( void    *hndl,
             OCIError    *err,
             const OCIDateTime    *date,
             Ub4    *valid)

参数的解释如下:

  • hndl(IN): OCI用户会话句柄或环境句柄。若传入一个用户会话句柄,则转换工作发生在该会话的 NLS_LANGUAGE 和该会话的NLS_CALENDAR,否则利用默认设置。

  • err(IN/OUT):OCI错误句柄。若有错误就记录在err中,并且由该函数返回OCI_ERROR,调用OCIErrorGet()获得错误的诊断信息。

  • date(IN):要进行检查的日期。

  • valid(OUT):对于有效的日期返回 0,否则返回默认指定的所有错误比特的组合。

其他说明

OCIDateTimeCompare

功能描述

比较两个日期时间值。

功能说明

比较两个日期时间值。

接口信息

函数/过程

语法如下:

sword OCIDateTimeCompare( void    *hndl,
             OCIError    *err,
             const OCIDateTime    *date1,
             const OCIDateTime    *date2,
             sword    *result)

参数的解释如下:

  • hndl(IN): OCI用户会话句柄或环境句柄。若传入一个用户会话句柄,则转换工作发生在该会话的NLS_LANGUAGE和该会话的NLS_CALENDAR,否则利用默认设置。

  • err(IN/OUT):OCI错误句柄。若有错误就记录在err中,并且由该函数返回OCI_ERROR,调用OCIErrorGet()获得错误的诊断信息。

  • date1, date2(IN):要对比的日期。

  • result(OUT):对比结果。

其他说明

OCIDateTimeToArray

功能描述

把OCIDateTime描述符转换成一数组。

功能说明

把OCIDateTime描述符转换成一数组。

接口信息

函数/过程

语法如下:

sword OCIDateTimeToArray( void    *hndl,
             OCIError    *err,
             const OCIDateTime    *datetime,
             const OCIInterval    *reftz,
             ub1    *outarray,
             ub4    *len,
             ub1     fsprec)

参数的解释如下:

  • hndl(IN): OCI用户会话句柄或环境句柄。若传入一个用户会话句柄,则转换工作发生在该会话的 NLS_LANGUAGE 和该会话的NLS_CALENDAR,否则利用默认设置。

  • err(IN/OUT):OCI错误句柄。若有错误就记录在err中,并且由该函数返回OCI_ERROR,调用OCIErrorGet()获得错误的诊断信息。

  • datetime(IN): 指向一个 OCIDateTime描述符。

  • reftz(IN):当转换SQL_TIMESTAMP_LTZ类型时,用作参考的 OCIIterval的描述符。

  • outarray(OUT):包含日期的字节向量。

  • len(OUT):outarray参数的长度。

  • fsprec(IN):向量中的分秒精度。 (暂不支持)

其他说明

OCIDateTimelntervalAdd

功能描述

向日期时间添加间隔以生成结果日期时间。

功能说明

向日期时间添加间隔以生成结果日期时间。

接口信息

函数/过程

语法如下:

sword OCIDateTimeIntervalAdd( void   *hndl,
                 OCIError     *err,
                 OCIDateTime  *datetime,
                 OCIInterval  *inter,
                 OCIDateTime  *outdatetime );

参数的解释如下:

  • 输入

    • hndI(IN):用户会话或环境句柄。

    • err(IN/OUT):OCI错误句柄。如果出现错误,则记录在 err 中,此函数返回 OCI_ERROR。通过调用 OCIErrorGet()共取诊断信息。

    • datetime(IN):指向输入日期时间的指针。

  • 输出

    • inter(OUT):指向输入间隔的指针。

    • outdatetime(OUT):指向输出时间的指针。输出的 datetime与输入的 datetime类型相同。

其他说明

OCIDateTimelntervalSub

功能描述

从日期时间中减去一个间隔,并将结果存储在日期时间中。

功能说明

从日期时间中减去一个间隔,并将结果存储在日期时间中。

接口信息

函数/过程

语法如下:

sword OCIDateTimeIntervalSub ( void    *hndl,
                 OCIError      *err,
                 OCIDateTime   *datetime,
                 OCIInterval   *inter,
                 OCIDateTime   *outdatetime );

参数的解释如下:

  • 输入

    • err(IN/OUT):OCI错误句柄。如果出现错误,则记录在 err 中,此函数返回 OCI_ERROR。通过调用 OCIErrorGet()共取诊断信息。

    • datetime(IN):指向输入日期时间的指针。

  • 输出

    • inter(OUT):指向输入间隔的指针。

    • outdatetime(OUT):指向输出时间的指针。输出的 datetime与输入的 datetime类型相同。

其他说明

OCIDateTimeSubtract

功能描述

将两个日期时间作为输入,并将它们的差值存储在一个时间间隔内。

功能说明

将两个日期时间作为输入,并将它们的差值存储在一个时间间隔内。

接口信息

函数/过程

语法如下:

sword OCIDateTimeSubtract(void *hndl, OCIError  *err, OCIDateTime  *indate1,
                 OCIDateTime  *indate2, OCIInterval *inter)

参数的解释如下:

  • 输入

    • hndl:用户会话句柄或环境句柄。

    • err:错误句柄。

    • indatel:日期时间的第一个输入参数。

    • indate2:日期时间的第二个输入参数。

    • inter:输出的时间间隔类型。

  • 输出

    • result:输出的间隔类型(只支持OCI_DTYPE_INTERVAL_DS)和 OCI保持一致。

其他说明

OCIDateTimeSysTimeStamp

功能描述

获取系统当前日期和时间作为带时区的时间戳。

功能说明

获取系统当前日期和时间作为带时区的时间戳。

接口信息

函数/过程

语法如下:

sword
OCIDateTimeSysTimeStamp(void  *hndl, OCIError  *err, OCIDateTime  *sys date)

参数的解释如下:

  • 输入

    • hndl:用户会话句柄或环境句柄。

    • err:错误句柄。

    • sys_date:获取的当前系统中日期时间输出参数。

  • 输出

    • result:输出的间隔类型(只支持OCI_DTYPE_INTERVAL_DS)和 OCI保持一致。

其他说明

OCIDateTimeConvert

功能描述

将一个日期时间类型转换为另一个日期时间类型。

功能说明

将一个日期时间类型转换为另一个日期时间类型。

接口信息

函数/过程

语法如下:

sword OCIDateTimeConvert ( void   *hndl,
               OCIError  *err,
               OCIDateTime *indate, 
               OCIDateTime *outdate)

参数的解释如下:

  • hmd(IN):OCI用户会话句柄或环境句柄。若传入一个用户会话句柄,则转换工作发生在该会话的NLS_LANGUAGE和该会话的 NLS_CALENDAR,否则利用默认设置。

  • em(IN/OUT):OCI错误句柄。若有错误就记录在err中,并且由该函数返回OCI_ERROR,调用OCIErrorGet()获得错误的诊断信息。

  • indate(IN):输入的时间。

  • outdate(OUT):输出的时间。

其他说明

OCIDateTimeFromArray

功能描述

将包含日期的数组转换为OCIDateTime描述符。

功能说明

将包含日期的数组转换为OCIDateTime描述符。

接口信息

函数/过程

语法如下:

sword OCIDateTimeFromArray(  void  *hndlp,
                 OCIError     *err,
                 const ub1    *inarray,
                 ub4          *len,
                 ub4           type, 
                 OCIDateTime  *datetime,
                 const OCIInterval  *reftz,
                 ubl                 fsprec)

参数的解释如下:

  • hndl(IN):境句柄或者用户会话句柄。

  • err(IN/OUT):错误句柄。

  • inarray(IN):ub1数组,包含一个 date。

  • len(IN):数组的长度。

  • type(IN):数组里的日期的合适的 SQLT 类型。

  • datetime(OUT):一个OCIDateTime描述符指针。

  • reftz(IN):当涉及转换 SQLT_TIMESTAMP_LTZ类型时,需要一个有用的 OCIInterval 描述符。(由于OCI暂不支持时区,所以该参数并没有使用)

  • fsprec(IN):结果日期时间的小数精度。 (由于OCI暂不支持时区,所以该参数并没有使用)。

其他说明