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):检索到的时区的分钟值。

其他说明