Frage Hallo zusammen, ich habe folgende Abfrage. select * from a where erString = (select 1 from b where CONVERT(VarChar(80), ) = CONVERT(VarChar(80), erString) and is not null) Diese läuft bei mir aber in den Fehler --> Meldung 245, Ebene 16, Status 1, Zeile 2 Fehler beim Konvertieren des nvarchar-Werts '--' in den int-Datentyp. <-- Statt die (im gesendeten Beispiel) 3 Ergebnisse zu liefern. Warum??? Und wie kann ich das am elegantesten umgehen??? Fehler beim konvertieren des varchar werts in den int datentyp der. Oder habe ich hier eventuell einen Denkfehler??? (wäre ja nicht das erste mal) Unten bringe ich noch mal eine Tabelle mit ein paar Testwerten. Danke und Gruß Stephan USE [export] GO SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON CREATE TABLE [dbo]. [Test]( [ID] [nvarchar](80) NULL) ON [PRIMARY] CREATE TABLE [dbo].
SELECT LIFNR, SUM(CASE WHEN UPPER([WAERS])="USD" THEN ROUND(CONVERT(numeric(10, 2), DMBTR)* (-1), 2) WHEN UPPER(WAERS)="USD" THEN ROUND(CONVERT(numeric(10, 2), DMBTR), 2) ELSE ROUND(CONVERT(numeric(10, 2), DMBTR), 2) END) AS "AMOUNT" FROM tbl_BSAK GROUP BY LIFNR; Hallo allerseits. Ich habe gerade ein Stück Code geschrieben und bekomme immer mehrdie Fehlermeldung "Fehler beim Konvertieren des Datentyps varchar in numerisch". Ich bin sicher, es ist eine einfache Lösung, aber ich habe viel zu viel Zeit mit der Fehlersuche verbracht... Bitte hilf mir!!!! [gelöst] MSSQL2005 Fehler beim Konvertieren des varchar-Datatyps in datetime | myCSharp.de. Vielen Dank!!! Antworten: 4 für die Antwort № 1 Basierend auf der Syntax gehe ich davon aus, dass dies SQL Server ist. Wenn Sie den fehlerhaften Wert ermitteln möchten, gehen Sie folgendermaßen vor: select * where isnumeric(DMBTR) = 0 and DMBTR is not null; So beheben Sie das Problem: SUM(CASE WHEN isnumeric(DMBTR) = 1and UPPER([WAERS])="USD" THEN ROUND(CONVERT(numeric(10, 2), DMBTR)* (-1), 2) WHEN isnumeric(DMBTR) = 1 and UPPER(WAERS)="USD" THEN ROUND(CONVERT(numeric(10, 2), DMBTR), 2) when isnumeric(DMBTR) = 1 then ROUND(CONVERT(numeric(10, 2), DMBTR), 2) GROUP BY LIFNR;
Intan Nur Shafienaz Ich habe ein Problem mit meinem SQL wie unten angegeben. Nach der Ausführung wurde ein Fehler angezeigt: Die Konvertierung ist beim Konvertieren des Varchar-Werts 'ONWARDS' in den Datentyp int fehlgeschlagen. SELECT description, moreThanDay, CONCAT(moreThanDay+1, ' - ', IIF(LEAD(moreThanDay) OVER (ORDER BY moreThanDay) > 0, LEAD(moreThanDay) OVER (ORDER BY moreThanDay), 'ONWARDS')) AS rangeDay FROM EquipmentOwnerDetention WHERE [email protected] Weiß jemand, wie man das Casting so macht, dass das Ergebnis als String ausfällt? Danke im Voraus. Shreyas Prakash Der zweite Parameter in IIF ist int und 'ONWARDS' ist string. IIF erwartet, dass beide vom gleichen Datentyp sind. Versuchen Sie, den ersten Parameter in eine Zeichenfolge zu konvertieren, und es kann funktionieren. Fehler beim Konvertieren des varchar-Werts | Datenbank-Forum. Etwas wie das STR(LEAD(moreThanDay) OVER (ORDER BY moreThanDay), 10), 'ONWARDS')) AS rangeDay Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an. Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Okay. Darauf wollte ich hinaus: Du weißt nicht, was ref tut:-) Für Dein Vorhaben würde ich auch eher eine Klasse als ein srtcut verwenden; das aber nur am Rande. Zitat von BruisE Hatte auch schon Probleme mit "dWithValue" und bevor ich da wieder in Fehler laufe... Der Vorteil von AddWithValue ist, dass automatisch der Typ ermittelt wird und Du nicht (aus versehen) einen falschen Typ angibst. Ich vermute, dass Du in der Datenbank die Datetimes eben nicht als Datetime definiert hast, sondern als string/varchar. Jedenfalls wäre das die Erklärung für die entsprechende Fehlermeldung. Fehler beim konvertieren des varchar werts in den int datentyp den. 17. 2015 - 10:03 Zitat von Abt Okay. Darauf wollte ich hinaus: Du weißt nicht, was ref tut:-) Für Dein Vorhaben würde ich auch eher eine Klasse als ein srtcut verwenden; das aber nur am Rande. Du stimmst mich nachdenklich:). Dann muss ich nochmal über die Bücher was ref angeht. Zitat von Abt 17. 2015 - 10:31 Zitat von Abt Der Vorteil von AddWithValue ist, dass automatisch der Typ ermittelt wird und Du nicht (aus versehen) einen falschen Typ angibst.
Hallo, wie übergibt man einer Where-Klausel eine Zahlenliste? Diese Abfrage liefert das gewünsche Ergebnis: SELECT * FROM [dbo]. [v_TR] WHERE Counter in (648, 649, 650, 652... ) Wenn die Zahlenliste in einem Parameter steckt wie hier DECLARE @counter varchar(1000) SET @counter = (SELECT STRING_AGG(Counter, ', ') FROM [dbo]. [tb_Rec]); SELECT * FROM [dbo].
Ich habe dann solange am Query rum gebastelt bis ich ein gültiges Zeitformat hatte (dachte hätte das gestern schon ausprobiert ups... ) Lösung (gefällt mir nicht - nicht elegant): string tmformat = "dd-MM-yyyy HH:mm:ss:fff" dWithValue("@" + ParamHandyNr, handyNr); dWithValue("@" + ParamDatumVon, String(tmformat)); dWithValue("@" + ParamDatumBis, String(tmformat)); Vielen Dank für die Vielen Ratschläge und Hilfestellungen!!! P. S. : Interessant ist ja, dass beim Insert das falsche Format akzeptiert wird und beim Select nicht. Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BruisE am 17. 2015 - 14:26. Fehler beim konvertieren des varchar werts in den int datentyp de. 17. 2015 - 14:24 Wenn Deine Spalte plötzlich nen String annimmt spricht das nicht gerade für den korrekten Datentypen in der Spalte. Aber das hab ich ja schon mal gesagt.... Kann das sein, dass Du im Select mit Hochkomma arbeitest aber im Insert nicht? 17. 2015 - 14:28 Zitat von Abt Wenn Deine Spalte plötzlich nen String annimmt spricht das nicht gerade für den korrekten Datentypen in der Spalte.