Oracle 时间戳类型
当我选择 DESC 表名时,我看到某些列 TIMESTAMP(3)(11)。 3 是小数秒精度。 11 是什么?如何定义这样的列?
例如,ALTER TABLE name ADD col TIMESTAMP(3)(11)
给出 ORA-00907: 缺少右括号
When I choose DESC tablename, I see for some columns TIMESTAMP(3)(11). The 3 is the fractional seconds precision. What is the 11, and how can I define a column like this?
ALTER TABLE name ADD col TIMESTAMP(3)(11)
for example gives ORA-00907: missing right parenthesis
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不知道 TIMESTAMP 类型的任何第二个参数 - 即使有一个,我也希望看到 TIMESTAMP(3,11) 而不是您所看到的。
我想知道您使用的 SQLPlus 版本是否无法正确理解数据类型,这是它表示它的最佳方式 - 在这种情况下,真正的数据类型可能类似于 TIMESTAMP(3) WITH TIME ZONE。
如果您从 ALL_TAB_COLUMNS 中为相关列选择 DATA_TYPE,会显示什么时间戳?
I don't know of any second parameter to the TIMESTAMP type -- and even if there was one, I would expect to see TIMESTAMP(3,11) instead of what you are seeing.
I wonder if the version of SQLPlus you are using does not understand the data type properly and this is the best way it can represent it -- in which case the real data type might be something like TIMESTAMP(3) WITH TIME ZONE.
What timestamp is displayed if you select DATA_TYPE from ALL_TAB_COLUMNS for the column in question?
TIMESTAMP(3)(11) 表示数据类型为 TIMESTAMP(3),允许数据长度为 11。并非所有工具(第 3 方程序)都以这种方式显示。但是,如果您发现标记为时间戳(3)(11)而不是时间戳(3)的列,则无需担心:)
TIMESTAMP(3)(11) means that the datatype would be TIMESTAMP(3), which allows a data length of 11. Not all tools (3rd party programs) shows it this way. But if you find a column marked as timestamp(3)(11) instead of just timestamp(3) there is no need to worry :)