Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes 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 15/03/2011, 10h51   #1
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Par défaut Ajouter les heures et minutes à une date de style 103

Bonjour,

Comment faire pour ajouter les heures et minutes (donc sans les secondes) à ceci :
Code :
CONVERT(varchar,date_creation, 103) AS date_creation
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 11h22   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Utilisez DATEADD()
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 12h26   #3
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Bonjour,

Un peu plus :

Code :
SELECT CONVERT(char(10), date_creation, 103) + ' ' + CONVERT(char(8), date_creation, 108)
Il suffisait de continuer à lire la documentation de la fonction CONVERT()

Vous pouvez aussi en faire une fonction scalaire :

Code :
1
2
3
4
5
6
7
CREATE FUNCTION fn_get_formatted_date
	(@_date_time datetime)
RETURNS char(19)
AS
BEGIN
	RETURN CONVERT(char(10), @_date_time, 103) + ' ' + CONVERT(char(8), @_date_time, 108)
END
Que vous pouvez utiliser entre le SELECT et le FROM d'une requête...
Ou encore une fonction de table en ligne qui offre de meilleures performances :
- quand elle est utilisée sur une colonne d'une table
- qu'elle retourne une seule ligne sans interroger une table
- qu'elle est utilisée avec l'opérateur APPLY :

Code :
1
2
3
4
5
CREATE FUNCTION fn_get_formatted_date
	(@_date_time datetime)
RETURNS TABLE
AS
RETURN SELECT CONVERT(char(10), @_date_time, 103) + ' ' + CONVERT(char(8), @_date_time, 108) AS formatted_date
Ce qui donne, à l'utilisation :

Code :
1
2
3
4
SELECT		T.mesColonnes
		, D.formatted_date
FROM		dbo.maTable AS T
CROSS APPLY	dbo.fn_get_formatted_date(T.date_creation) AS D
Cela dit si c'est pour de l'affichage dans une application, une telle transformation doit se faire côté applicatif ...

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 14h13   #4
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Cela dit si c'est pour de l'affichage dans une application, une telle transformation doit se faire côté applicatif ...
Effectivement je pourrais le faire côté applicatif, mais cette ligne me semble plus simple et rapide :

Code :
SELECT CONVERT(char(10), date_creation, 103) + ' ' + CONVERT(char(8), date_creation, 108)
Merci de votre aide
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 14h16   #5
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
Effectivement je pourrais le faire côté applicatif, mais cette ligne me semble plus simple et rapide
Faux... et ce n'est pas le boulot d'un SGBD...
Les languages tels que C# ou autres sont là pour çà...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk 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 21h18.


 
 
 
 
Partenaires

Hébergement Web