Fehler bei der Konvertierung beim konvertieren von Datum und/oder Zeit von Zeichenkette in SQL SERVER 2008
Habe ich unter 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'
bei mir lief das über SQL die unten Ausnahme wurde throwed.
Conversion failed when converting date and/or time from character string.
select CONVERT(VARCHAR(24),'23-07-2014 09:37:00',113)
funktioniert auf meinem Rechner, welche version von sql server verwenden Sie?SQL server 2008 r2
ist
last_accessed_by
eine datetime-Spalte?Die letzten accessed_by Spalte ist vom Datentyp VARCHAR(50) und Last_accessed_on ist DATETIME2
sorry ich meinte, Sie zu bitten, über
last_accessed_on
InformationsquelleAutor Rithik_Star | 2014-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen, einfügen in
last_accessed_on
, das ist einDateTime2
, dann ist dein Problem mit der Tatsache, dass Sie konvertieren es in einvarchar
in ein format, dass SQL nicht verstehen.Wenn du den code so ändern, das es funktionieren sollte, beachten Sie das format von Datum wurde geändert zu: YYYY-MM-DD hh:mm:ss:
Oder wenn Sie verwenden möchten
CAST
ersetzen mit:Dies ist mit dem SQL-ISO-Datumsformat.
Das Problem ist einfach mit Ihrer Wahl von Datum-format und SQL Unfähigkeit, das zu verstehen, es als datetime. Die Aktualisierung der ISO-format ermöglicht SQL zu verstehen, ist es daher klappte es mit dem Datentyp varchar.
InformationsquelleAutor Tanner
Scheint, wie last_accessed_on, ist ein Datum, Zeit, und, die Sie konvertieren '23-07-2014 09:37:00' varchar. Dies würde nicht funktionieren, und geben Sie Konvertierungsfehler. Versuchen
Ich denke, Sie können vermeiden, die Besetzung aber, und update mit '23-07-2014 09:37:00'. Es sollte funktionieren, da das format richtig ist.
Ihre Abfrage ist nicht zur Arbeit gehen, weil in last_accessed_on (das ist DateTime2 - Typ), Sie versuchen, pass ein Varchar Wert.
Abfrage wäre
Habe die Abfrage funktioniert, wenn mit cast('23-07-2014 09:37:00' as datetime)? Wenn ja, last_accessed_on ist vom Typ DateTime, und um nach einem update zu arbeiten - Sie können nicht passieren Sie eine varchar-Datentyp, in einem Feld mit einem anderen Typ, wie datetime.
die last_accessed_on Feld ist DATETIME2-Feld null-Werte zulässt
Genau, Sie können nicht übergeben Sie einen varchar-Wert in die Datum-Zeit-Feld. Meine Antwort oben sollte für Sie gearbeitet haben - richtig?
Aktualisiert meine Antwort als gut.
InformationsquelleAutor Mez
InformationsquelleAutor Praveen P K