我有 1 个带有时间戳列的表,我正在尝试删除时间戳列是主键的行,那么如何删除该行?
例如:
Delete from access where timeStamp_column = '13/04/18 07:15:31,123457000';
像这样的东西,我一直在搜索,但我发现的只是“如何删除比等更旧的时间戳”,我需要它与我写的相同
谢谢,人们!
请原谅我的英语 :)
您依赖于基于会话 NLS 设置的隐式转换,这绝不是一个好主意。您应该使用带有to_timestamp()
合适格式掩码的字符串值的显式转换。
看起来特别可疑的两件事是两位数的年份 - 如果您的NLS_TIMESTAMP_FORMAT
YYYY 将寻找 0018 而不是 2018;可能是 07 的小时值 - 您没有 AM/PM 标记,因此如果您NLS_TIMESTAMP_FORMAT
有HH:MI:SS,FF9 AM'
(或HH:... PM
,或HH:...
没有 AM 或 PM),那么您可能看错了一天中的时间。
如果您有固定值,则可以使用时间戳文字:
delete from access
where timeStamp_column = timestamp '2018-04-13 07:15:31.123457000';
否则显式转换:
delete from access
where timeStamp_column = to_timestamp('13/04/18 07:15:31,123457000',
'DD/MM/RR HH24:MI:SS,FF9');
(当然,假设真的应该是早上 7 点;如果应该是晚上 7 点,只需将 07 更改为 19)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句