我有一个表EMPLOYEE
,它有两个TIMESTAMP
字段"CRTE_DTM"
和"END_DTM"
。
我想在顶部EMPLOYEE
表上创建一个视图,我可以在这两个字段上放置一些函数,只返回3 {3}精度的TIMESTAMP
。
示例:
如果我在EMPLOYEE
表
CRTE_DTM
----------------
10-SEP-02 02.10.10.123000000 PM
我想修改时间戳,以毫秒为单位只有3个精度,见下文,
CRTE_DTM
----------------
10-SEP-02 02.10.10.123 PM
注意:我使用此视图将数据加载到"CRTE_DTM"
和"END_DTM"
字段为TIMESTAMP&#39>的表格中
答案 0 :(得分:1)
如果您可以重新创建表(或添加列,复制数据,删除旧的和重命名),则可以使用数据类型TIMESTAMP(3)
。 <{1}}的默认值是6个小数位,但可以覆盖它。
或者,您可以转换为具有指定格式的字符串,并且(可选地,如果您要使用TIMESTAMP)可以转换回来:
TIMESTAMP
答案 1 :(得分:1)
您可以尝试以下方法:
CREATE VIEW myview AS
SELECT <other_columns>
, CAST(crte_dtm AS TIMESTAMP(3)) AS crte_dtm
, CAST(end_dtm AS TIMESTAMP(3)) AS end_dtm
FROM employee;
希望这有帮助。
答案 2 :(得分:0)
10-SEP-02 02.10.10.123000000 PM
与10-SEP-02 02.10.10.123 PM
的时间戳相同。你可以做的是选择一个显示所需格式的时间戳的字符串:
select to_char(timestamp_column, 'dd-MON-yy hh24.mi.ss.ff3', 'nls_date_language=english')
from mytable;