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