Как удалить строку, когда отметка времени точно так же, как другая отметка времени - PullRequest
0 голосов
/ 23 октября 2018

У меня есть 1 таблица, в которой есть столбец метки времени, я пытаюсь удалить строку, в которой столбец метки времени является первичным ключом, так как я могу удалить строку?

Например:

Delete from access where timeStamp_column = '13/04/18 07:15:31,123457000'; 

Что-то вроде этого, я искал, но все, что я нашел, это "Как удалить метку времени старше чем т. Д.", Мне нужно, чтобы она была идентична тому, что я пишу

Спасибо,люди!

Извините за мой английский:)

1 Ответ

0 голосов
/ 23 октября 2018

Вы полагаетесь на неявное преобразование на основе настроек сеанса 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...