Échec de la Conversion lors de la conversion de la date et/ou le temps de chaîne de caractères dans SQL SERVER 2008
J'ai ci-dessous SQL.
UPDATE student_queues
SET Deleted=0,
last_accessed_by='raja',
last_accessed_on=CONVERT(VARCHAR(24),'23-07-2014 09:37:00',113)
WHERE std_id IN ('2144-384-11564')
AND reject_details='REJECT'
quand j'ai couru le SQL ci-dessus ci-dessous exception a été l'avaient envoyé.
Conversion failed when converting date and/or time from character string.
select CONVERT(VARCHAR(24),'23-07-2014 09:37:00',113)
fonctionne sur ma machine, quelle version de sql server que vous utilisez?SQL server 2008 r2
est
last_accessed_by
une colonne datetime?La dernière accessed_by colonne est de type VARCHAR(50) et Last_accessed_on est DATETIME2
désolé, je voulais dire à propos de
last_accessed_on
OriginalL'auteur Rithik_Star | 2014-07-23
Vous devez vous connecter pour publier un commentaire.
Si vous essayez d'insérer dans
last_accessed_on
, qui est unDateTime2
, alors votre problème est du au fait que vous êtes en la convertissant en unevarchar
dans un format SQL ne comprends pas.Si vous modifiez votre code pour cela, il doit travailler, remarque le format de votre date a été modifiée pour: AAAA-MM-JJ hh:mm:ss:
Ou si vous souhaitez utiliser
CAST
, remplacer par:C'est à l'aide de la SQL Format de Date ISO.
La question est simplement avec votre choix de format de date et SQL incapacité à le comprendre comme un datetime. La mise à jour vers le format ISO SQL permet de comprendre d'où il a travaillé avec le type varchar.
OriginalL'auteur Tanner
Semble last_accessed_on, est une date, et vous êtes à la conversion de 23-07-2014 09:37:00' varchar. Ce ne serait pas de travail, et de vous donner des erreurs de conversion. Essayez
Je pense que vous pouvez éviter la fonte de bien, et de mettre à jour avec '23-07-2014 09:37:00'. Il devrait fonctionner, étant donné que le format est correct.
Votre requête n'est pas d'aller travailler parce que dans last_accessed_on (qui est DateTime2 type), vous essayez de passer un Varchar valeur.
Vous interrogez serait
A la requête de travail, lors de l'utilisation de cast('23-07-2014 09:37:00' as datetime)? Si oui, last_accessed_on est de type DateTime, et dans le but de une mise à jour de travail - vous ne pouvez pas passer d'un type varchar, dans un champ avec un autre type datetime.
le last_accessed_on champ est DATETIME2 Nullable champ
Exactement, de sorte que vous ne pouvez pas passer un varchar de la valeur à la date heure terrain. Ma réponse ci-dessus doit avoir travaillé pour vous corriger?
Mise à jour de ma réponse.
OriginalL'auteur Mez
OriginalL'auteur Praveen P K