【发布时间】:2020-01-16 23:08:29
【问题描述】:
我有一列时间戳以 20-02-18 03:50:58.347000000 PM 格式存储。这些时间戳存储在多行中,因此我想通过使用随机数生成器仅更新此列中的毫秒数,以便每一行都是唯一的。我尝试使用下面的查询来更新时间
UPDATE table
SET field = TO_TIMESTAMP('18-01-18 02:23:27.265000050 PM'|| ' ' || TO_TIMESTAMP(field, 'HH:MI:SS.FF'),'DD-MM-YY HH:MI:SS.FF')
where objid = XXX;
我收到一个错误 - ORA-01849:小时必须在 1 到 12 之间
如果我将查询更改为以下格式 - ow查询更新时间
UPDATE table
SET field = TO_TIMESTAMP('18-01-18 02:23:27.265000050 PM'|| ' ' || TO_TIMESTAMP(field, 'hh12:MI:SS.FF'),'DD-MM-YY hh12:MI:SS.FF')
where objid = XXX;
我得到以下错误 - ORA-01830: 日期格式图片在转换整个输入字符串之前结束。有人可以检查一下吗
【问题讨论】:
-
执行此操作时出现错误 ORA-01830:日期格式图片在转换整个输入字符串之前结束
-
您是否真的将时间戳值存储为
VARCHAR2?如果不是,为什么要在已经是TIMESTAMP的值上运行TO_TIMESTAMP? -
为什么你认为随机数会产生唯一值?
-
列
field的数据类型是什么?是毫秒数吗? -
嗨 Wenfried,是的,它已经以时间戳格式存储,我想使用随机数,因为它会为每一行提供不同的值
标签: oracle oracle11g date-arithmetic