Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2007, 09h15   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 67
Points : 67
Par défaut pb d'identification d'heure

salut
étant donner que les heures d'une journée sont comprises entre 1 heure (1)
et 24 heures (00),le pb c'est comment identifieé une heure quelconque est avant minuit et aprés minuit
daliok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 09h33   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
bah entre 12-24h c'est avant et entre 0-12 c'est après non ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 09h36   #3
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
C'est faux : les heures sont comprises entre 00 et 23
ça part de 00h00m00s (minuit) à 23h59m59s
Code :
1
2
To_char( trunc(sysdate), 'HH24:MI:SS') => 00:00:00
To_Char( trunc(sysdate) - 1/24/60/60, 'HH24:MI:SS') => 23:59:59
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 10h30   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
si on veut pinailler on peut même parler de 23:59:59 999ms
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 10h33   #5
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
Envoyé par daliok Voir le message
salut
étant donner que les heures d'une journée sont comprises entre 1 heure (1)
et 24 heures (00),le pb c'est comment identifieé une heure quelconque est avant minuit et aprés minuit
Non sens !
à n'importe quelle heure de la journée, on est à la fois avant minuit (0 heure) du jour suivant, et aprés minuit (0 heure) du jour courant !!
Une fois de plus, merci de spécifier le besoin (ou d'être plus précis) !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 11h15   #6
Membre du Club
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 67
Points : 67
désolé
je vais étre plus précis,je suis entrain de developper un module pointage et j'ai plusieurs shifts qui ont une heure et minute entrée et ont une heure et minute sortie et dans mon raisonnement j'ai besoin de savoir dans le cas d'une sortie l'heure du pointage est avant ou bien aprés minuit pour déterminer à quelle date correspand la sortie
j'éspére que j'été clair, merci d'avance
daliok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 11h16   #7
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
En partant du principe que tu veux savoir si l'on est plus proche de 0 h ("aprés minuit") ou de 23:59 ("avant minuit")
Code :
1
2
3
4
5
 
-- maintenant
SELECT decode(to_char(sysdate,'AM'),'AM','APRES','AVANT') FROM dual
-- dans 12 heures
SELECT decode(to_char(sysdate+12/24,'AM'),'AM','APRES','AVANT') FROM dual
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 11h17   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par daliok Voir le message
désolé
je vais étre plus précis,je suis entrain de developper un module pointage et j'ai plusieurs shifts qui ont une heure et minute entrée et ont une heure et minute sortie et dans mon raisonnement j'ai besoin de savoir dans le cas d'une sortie l'heure du pointage est avant ou bien aprés minuit pour déterminer à quelle date correspand la sortie
j'éspére que j'été clair, merci d'avance
c'est impossible ton truc

Comment faire l'arrivée et le départ sont à la même heure ??? Il te faut la date... en plus c'est bien foutu puisque Oracle n'a pas de type HEURE mais il a un type DATE
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 11h36   #9
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
"Impossible n'est pas français"

Je suppose qu'un shift fait moins de 24h, voire, moins de 12h.
Il suffit de tester l'heure de sortie sur la date d'entrée et de vérifier si elle est < à la date d'entrée. Dans ce cas rajouter 1 jour.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
WITH dt AS (SELECT '08:15' AS he, '23:12' AS hs FROM dual
	UNION ALL
		SELECT '20:10' AS he, '03:12' AS hs FROM dual
			)
SELECT 
	TO_DATE(TO_CHAR(TRUNC(SYSDATE), 'DD/MM/RRRR ') || he, 'DD/MM/RRRR HH24:MI') AS de,
	CASE WHEN TO_DATE(TO_CHAR(TRUNC(SYSDATE), 'DD/MM/RRRR ') || hs, 'DD/MM/RRRR HH24:MI') 
		< TO_DATE(TO_CHAR(TRUNC(SYSDATE), 'DD/MM/RRRR ') || he, 'DD/MM/RRRR HH24:MI')
	THEN
		TO_DATE(TO_CHAR(TRUNC(SYSDATE), 'DD/MM/RRRR ') || hs, 'DD/MM/RRRR HH24:MI') + 1 
	ELSE
		TO_DATE(TO_CHAR(TRUNC(SYSDATE), 'DD/MM/RRRR ') || hs, 'DD/MM/RRRR HH24:MI')
	END AS ds	
FROM dt
 
 
DE			DS
24/08/2007 08:15:00	24/08/2007 23:12:00
24/08/2007 20:10:00	25/08/2007 03:12:00
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 11h41   #10
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
et le jour où il y a un incident et que le shift prend plus de 24h tu es TRES mal

supposer c'est bien, anticiper c'est mieux
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 11h54   #11
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Bon, c'est vrai, tant qu'à pointer, autant garder le jour.
Surtout que dans l'exemple, on ne connait pas le jour de départ.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 12h09   #12
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
et avec un format date tu peux utiliser les fonctions ad hoc... calculer un interval quand c'est du VARCHAR on peut pas dire que ce soit trivial
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h01.


 
 
 
 
Partenaires

Hébergement Web