2011-04-28 6 views
0

J'ai une requête qui s'exécute plusieurs fois par jour, le problème est que nous voulons que la requête renvoie seulement retourner le résultat quand il est exécuté à certains moments. Donc, pour cet exemple, je veux seulement que les enregistrements soient retournés lorsque la requête est exécutée pendant l'heure de 8 heures. Je pensais que cela pourrait fonctionnerOracle/SQL - Sélectionner des enregistrements sur des heures sysdate spécifiques

case 
    when to_char(sysdate,'HH24') = '08' then 
     select 
      * 
     from 
      tablename 
end 

Et en effet il fait pendant la 8 heures heure, mais en dehors de cela il des erreurs plutôt que de retourner aucun enregistrement.

Des idées?


Bon d'accord c'était stupide de moi. J'étais en train de penser ça. J'étais coincé à devoir utiliser un si puis sorte de condition. Temps pour plus de café.

Répondre

6

Peut-être:

select 
     * 
    from 
     tablename 
    where 
     to_char(sysdate,'HH24') = '08'; 
+0

me tabassaient de 12 secondes! –

+0

Excuses pour la question trop pensante et ridicule: D – dscl

5

On dirait que vous voulez

SELECT * 
    FROM tablename 
WHERE to_char(sysdate, 'HH24') = '08' 
+0

Excuses pour la question trop pensante et ridicule: D – dscl

Questions connexes