Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 11/04/2011, 13h18   #1
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Par défaut problème avec convert et stuff

Bonjour

J'ai un soucis avec cette requête :

Code :
1
2
3
4
SELECT S.server_id AS nserveur, S.last_outcome_message AS message,J.name,  convert( datetime, convert( varchar , last_run_date ), 112) + convert( datetime, stuff( stuff( replicate ('0', 6 - len(convert(varchar, last_run_time )) ) + convert(varchar, last_run_time ),3, 0 , ':') , 6, 0 , ':' ) , 108) date_heure_derniere_execution, convert( varchar,stuff( stuff( replicate ('0', 6 - len (convert(varchar,last_run_duration )) ) + convert(varchar, last_run_duration ), 3, 0 , ':') , 6, 0 , ':' ) , 108) duree 
                         FROM sysjobservers S
                        INNER JOIN sysjobs J ON J.job_id = S.job_id"_&
                                                                              where S.last_run_outcome <>1
Je travaille sous sqlserver 2005 J'interroge la base de données système msdb donc vous pouvez la tester sous sqlserveur.
Mon problème se situe dans la ligne du select au niveau des convert. Les champs "last_run_date" , "last_run_time" et "last_run_duration" correspondent à des dates ou des durées. Par exemple pour aujourd'hui (11/04/2011):
last_run_date aura pour valeur 11020411.

J'utilise des convert et des stuff pour que la date soit affichée comme cela 11-04-2011, mais ça ne fonctionne pas. Il y a peut être un autre moyen?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 14h30   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,

Que donne ceci :
Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
SELECT 
	S.server_id AS nserveur, 
	S.last_outcome_message AS message,
	J.name,  
	DATEADD(
		SECOND,
		(Last_run_time % 10000) % 100,
		DATEADD(
			MINUTE,
			(Last_run_time % 10000) / 100, 
			DATEADD(
				HOUR, 
				Last_run_time / 10000, 
				CAST(
					CAST(
						last_run_date 
						AS VARCHAR(8)
					) 
				AS DATETIME
				)
			)
		)
	)AS date_heure_derniere_execution, 
	CASE 
		WHEN last_run_duration / 10000 < 10 
			THEN '0' 
		ELSE '' 
	END 
	+ CAST(
		last_run_duration / 10000 
		AS VARCHAR(10)
	) 
	+ ':' 
	+ RIGHT(
		'0'
		+ CAST(
			(last_run_duration % 10000) / 100 
			AS VARCHAR(10)
		)
		, 2
	) 
	+ ':' 
	+ RIGHT(
		'0' 
		+ CAST(
			(last_run_duration % 10000) % 100 
			AS VARCHAR(10)
		)
		,2
	) AS duree
FROM sysjobservers S
INNER JOIN sysjobs J ON J.job_id = S.job_id

Quel est le but de la requête ? si vous le pouvez, effectuez cette "transformation" dans le programme d'affichage...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 15h13   #3
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Cette requête permet de récupérer des informations sur les lot DTS qui sont en erreur ou annulés.

Un lot DTS est une option de sqlserver 2005 qui permet d'importer et transformer des données entre plusieurs sources de données.
Par exemple remplir une table à partir d'un fichier excel.

Les tables que j'interroge sont un récapitulatif des erreurs engendrées par le dysfonctionnement de différents lots. Suite à cette requête un mail sera envoyé pour prévenir l'utilisateur que son lot ne fonctionne pas.

J'espère avoir été claire dans l'explication sinon n'hésite pas a me poser des questions.
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 16h57   #4
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Ça marche merci
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h47.


 
 
 
 
Partenaires

Hébergement Web