我有一个计划过程中不断更新与当前时间戳空timestamp列,但有趣的是我看到这样的矛盾:奇怪的行为
各是更新通过单个更新到单个或多个行:
update timestamp = current_timestamp where row_condition = true;
但是这可怎么回事,甲骨文current_timestamp
查询不同呼叫表现不同?一个输出完全正确的时间戳,但从其他地方输出的东西(31-DEC-69)?
我有一个计划过程中不断更新与当前时间戳空timestamp列,但有趣的是我看到这样的矛盾:奇怪的行为
各是更新通过单个更新到单个或多个行:
update timestamp = current_timestamp where row_condition = true;
但是这可怎么回事,甲骨文current_timestamp
查询不同呼叫表现不同?一个输出完全正确的时间戳,但从其他地方输出的东西(31-DEC-69)?
这听起来好像您可能具有该列的DEFAULT值。插入行的时间戳列未提供值,因此已使用默认值填充行。
尝试select data_default from all_tab_columns where table_name = 'YOUR_TABLE'
; YOUR_TABLE是表名(请记住用大写字母写)。这会告诉你是否有该列的默认值。如果你喜欢,你可以在where子句中添加列名 - 但如果你不这样做,你可能会发现更多的信息,你可能没有意识到。
行为有什么不同?另外,你的意思是说你有一个过去将近50年的过程?我不相信。 (或者,你是说31-DEC-69是不正确的,你不知道它为什么插入?) – mathguy
@mathguy你是对的问题不是很清楚,所以我更新它。我不知道current_timestamp给出了31-DEC-69 .. – Dreamer
current_timestamp是一个带时区的时间戳,我猜这个列也是。这意味着创建该记录的会话的时区是格林威治标准时间4(美国东海岸?),并且正在插入1970年1月1日的纪元时间。 –