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暂不支持时区,所以该参数并没有使用)。
其他说明
无