我有一个带有TIMESTAMP(6)
列的Oracle DB后端
我正在尝试使用OCCI将值插入此列中。显然,必须使用setTimestamp()
方法设置该值,该方法接受OCCI Timestamp
类以绑定值。
但是,我的价值是一个Unix时间戳,Timestamp
类似乎缺乏任何逻辑来促进时间戳创建,它仅接受构造函数中的小时,分钟...等等。
真的没有更简单的方法吗?我真的必须写自己的逻辑才能获得Timestamp
类的实例吗?
我不能做这个时间戳转换DB侧,顺便说一句 - 绩效原因。
oracle提供 fromText 方法:
fromText()此方法从字符串中设置时间戳值。该字符串预计将以指定的格式。如果指定了NLSPARAM,则将确定用于转换的NLS参数。如果未指定NLSPARAM,则从已通过的环境中拾取NLS参数。如果环境未传递,则从与实例相关的环境中获得NLS参数(如果有)。
语法void fromText(const string& timestmpstr,const string& fmt,const字符串& nlsparam =; quot; quort环境 *env = null)
参数:
- timestmpstr输入字符串
- FM格式字符串
- NLSPARAM语言名称(当前对英语和美国的支持)
- 将使用其NLS参数的环境。
这可能会使它变得更加清洁,因为如果您已经将日期作为字符串作为字符串,则可以使用字符串,或者可以从TM struct制作