Mise à jour de Sysdate - 10 min dans Oracle

J'ai besoin de mettre à jour une colonne de date, avec sysdate mais 10 minutes passées. Y a-t-il un moyen de faire?

S'il vous plaît aider.

0
@ShannonSeverance Vous êtes vraiment génial, vous avez trouvé le problème. Merci beaucoup.
ajouté l'auteur Vaandu, source
J'ai mis à jour une seule ligne et validée après la mise à jour et essayé de sélectionner avec la fonction to_char.
ajouté l'auteur Vaandu, source
J'ai essayé ça. mais n'a pas fonctionné. mettre à jour le jeu de tables modified_date = (sysdate - 10/(24 * 60)) où property_name = 'xxx';
ajouté l'auteur Vaandu, source
Définir "ne fonctionne pas". Avez-vous eu une erreur? Si oui, quelle erreur? A-t-il mis à jour le nombre attendu de lignes? Pourquoi ne croyez-vous pas que c'est correct?
ajouté l'auteur Justin Cave, source
La table comporte-t-elle un déclencheur de mise à jour qui définit modified_date sur sysdate ? Cela remplacera les valeurs utilisées dans l'instruction update .
ajouté l'auteur Shannon Severance, source
"[Les déclencheurs] provoquent une céphalée de maintenance à long terme Les déclencheurs sont de minuscules morceaux de code qui ne sont pas directement exécutés par n'importe quoi - ils" arrivent "juste comme effet secondaire d'une autre opération. les gens oublient souvent que les déclencheurs sont là. (Et l'examen du code pour tous les effets secondaires est difficile, voire impossible.) "- Tom Kyte oracle.com/technetwork/issue-archive/2008/08-sep/… . OTOH,
ajouté l'auteur Shannon Severance, source

2 Réponses

Comme ça probablement

select sysdate - 10/(24*60) from dual;
0
ajouté
Qu'est-ce qui n'a pas fonctionné? montrez-moi la requête exacte que vous avez essayée; probablement sera en mesure d'aider plus.
ajouté l'auteur Rahul, source
Vérifiez votre colonne modified_date dans la table et validez si elle a vraiment changé ou non.
ajouté l'auteur Rahul, source
@Vanathi: vous n'affichez probablement pas la partie temps correctement. Changez vos paramètres NLS pour voir aussi les heures, minutes et secondes
ajouté l'auteur a_horse_with_no_name, source
Merci beaucoup les gars, le problème est résolu maintenant.
ajouté l'auteur Vaandu, source
J'ai vérifié les données de la colonne, Il est mis à jour à sysdate seulement.
ajouté l'auteur Vaandu, source
celui-là. `set de tables de mise à jour modified_date = (sysdate - 10/(24 * 60)) où property_name = 'xxx';`
ajouté l'auteur Vaandu, source
Je l'ai déjà essayé, mais cela n'a pas fonctionné. Merci pour la réponse.
ajouté l'auteur Vaandu, source
@Vanathi - Et pourquoi ne croyez-vous pas que cela a fonctionné?
ajouté l'auteur Justin Cave, source
Je vais répéter la question posée plus tôt par @ShannonSeverance: y a-t-il des déclencheurs UPDATE sur la table en question qui pourraient définir MODIFIED_DATE pour vous? Pour trouver ces déclencheurs sur votre table, essayez SELECT * FROM USER_TRIGGERS O TR TRIGGERING_EVENT COMME '% UPDATE%' et TABLE_OWNER = 'VOTRE_USER' et TABLE_NAME = 'VOTRE_TABLE' . Ensuite, parcourez-les et voyez si un déclencheur modifie la colonne DATE MODIFIEE. Bonne chance.
ajouté l'auteur Bob Jarvis, source
UPDATE the_table
   SET the_column = current_timestamp - interval '10' minute
WHERE pk = 42;

It certainly works, see here: http://sqlfiddle.com/#!4/a1986/2

0
ajouté
@Vanathi: ne fonctionnait pas n'est pas un message d'erreur Oracle valide. Et votre déclaration le fait 20 minutes plus tôt même si vous vouliez 10 minutes
ajouté l'auteur a_horse_with_no_name, source
ça n'a pas marché. mise à jour de la table set modified_date = (current_timestamp - intervalle '20' minute) où property_name = 'xxx';
ajouté l'auteur Vaandu, source
Merci beaucoup, j'ai trouvé le problème.
ajouté l'auteur Vaandu, source