La conversion d'une valeur numérique à jour de temps
Je travaille dans SQL Server 2012. Ma date de colonne dans un ensemble de données ressemble à ceci: 41547
. La colonne est en nvarchar (255)
. Je veux le convertir en quelque chose comme ceci: yyyy-mm-dd hh:mm:ss
(Exemple: 2013-09-14 12:23:23.98933090
). Mais je ne peux pas faire cela. Je suis à l'aide de code suivant:
select convert(datetime, date_column, 6)
Mais cela donne l'erreur suivante:
Msg 241, Level 16, State 1, Line 1 Conversion failed when converting
date and/or time from character string.
Ce que je fais mal?
OriginalL'auteur Sadat Mainuddin | 2013-10-09
Vous devez vous connecter pour publier un commentaire.
Votre date est en fait une valeur numérique (flottant ou entier), stockée dans une colonne char. Ainsi, vous devez le convertir en une valeur numérique (dans ce cas, pour
float
) tout d'abord, comme:Une valeur de
41547.5
:L'argument de style, dans votre cas
6
est nécessaire uniquement lors de la conversion à partir de ou vers char-types. Dans ce cas, il n'est pas nécessaire et sera ignorée.NB: Le flotteur de la valeur est le nombre de jours depuis
1900-01-01
.par exemple
select convert(datetime, CONVERT(float,9.0))
=>1900-01-10 00:00:00
; le même queselect dateadd(day,9.0,'1900-01-01')
serait.La partie décimale d'un nombre aussi équivaut à jours, donc
0.5
est un demi-jour /12 heures.par exemple
select convert(datetime, CONVERT(float,.5))
=>1900-01-01 12:00:00
. (Ici notre rapport à dateadd n'a pas de sens, puisque qui ne traite qu'avec des entiers plutôt que des flotteurs).int
ne fera que vous donner les jours, pas des heures et des minutes ...merci 🙂 j'ai besoin de quelques jours seulement. Pas les heures et les minutes.
OriginalL'auteur cars10m
Je viens de trouver la façon de le faire.
Je dois d'abord convertir le type de données nvarchar int puis-je le convertir en date du temps. J'ai utilisé le code suivant:
OriginalL'auteur Sadat Mainuddin
6 format est: "mon dd yy"
Comme ceci: SELECT convert(datetime, '23 OCT 16', 6)
D'autres formats seront la cause de votre erreur
OriginalL'auteur Nikita
OriginalL'auteur R S P
Il y a un moyen plus facile de faire ça bien.
OriginalL'auteur Mina