Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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/05/2011, 08h53   #1
Membre Expert
 
Inscription : octobre 2007
Messages : 3 946
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 946
Points : 1 905
Points : 1 905
Par défaut CAST de float en Varchar

Bonjour

J'ai deux tables qui devraient contenir des dates.
Malheureusement ces tables ont été importées depuis Excell.
Dans une table la date est en varchar, dans l'autre en float

Voici une date en float
Citation:
20110309
Le probleme c'est que si j'essaye de la convertir en varchar le resultat se met automatiquement en notation scientifique

Code :
SELECT CAST(MaDate AS VARCHAR);
me donne
Citation:
2.01103e+007
Comment puis-je eviter cela ?
Merci de votre aide
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h38   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
En passant par un cast :

Code :
1
2
3
DECLARE @D FLOAT
SET @D = 20110309 
SELECT @D, CAST(@D AS VARCHAR(32)), CAST(CAST(CAST(@D AS INT) AS CHAR(8)) AS DATETIME)

Code :
1
2
---------------------- -------------------------------- -----------------------
20110309               2.01103e+007                     2011-03-09 00:00:00.000
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 10h55   #3
Membre Expert
 
Inscription : octobre 2007
Messages : 3 946
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 946
Points : 1 905
Points : 1 905
Merci SQLPro !

Voilà une epine hors du pied
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 12h39   #4
Membre du Club
 
Femme
Inscription : mars 2007
Messages : 120
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2007
Messages : 120
Points : 59
Points : 59
Bonjour !

Je viens de rencontrer le même problème.

J'ai trouvé une solution un peu plus simple que plusieurs casts imbriqués :

Code :
SELECT cast(str(20110309,8,0) AS datetime)
Résultat :
Code :
1
2
-----------------------
2011-03-09 00:00:00.000
Bonne journée à tous
StitchP 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 11h49.


 
 
 
 
Partenaires

Hébergement Web