Får man gissa på att memberid är ett talfält?
I så fall, kasta bort apostroferna runt värdet.
Mvh,
Databaser & SQLur Databashanterare & SQL
8 svar · 241 visningar · startad av SilvioF
Halloj på er. Behöver lite hjälp med en liten sak.
Jag får meddelandet:
Data type mismatch in criteria expression.
när jag försöker köra fljande sql-sats.
SELECT memberID, FName, LName, Birthdate FROM tblMembers WHERE memberID = '0001' OR FName LIKE '%00001%' OR LName LIKE '%00001%' OR Birthdate = '1972-10-18' ORDER BY memberID, LName, FName, Birthdate
Någon som ser felet?
------------------
~~~~~~~~~~~~~~~~~~~~
Silvio Fumei
silvio@fumei.net
www.fumei.net
~~~~~~~~~~~~~~~~~~~~
Får man gissa på att memberid är ett talfält?
I så fall, kasta bort apostroferna runt värdet.
Mvh,
Vilka datatyper har de olika kolumnerna?
Du kan ju testa med att ta ett villkor i taget för att på så sätt se vilket det är som ger upphov till felet.
------------------
essentitia preter non sans multiplicandum
Nope, memberID har datatypen varchar. Det var min första tanke också att jag hade gjort fel datatyp. Det skall vara varchar eftersom memberID kommer att se ut som 0a7f efter ett tag.
------------------
~~~~~~~~~~~~~~~~~~~~
Silvio Fumei
silvio@fumei.net
www.fumei.net
~~~~~~~~~~~~~~~~~~~~
Ok, då får du berätta för oss vad de olika kolumnerna har för datatyper.
Kör du Microsoft SQL Server?
Felet låter som om det är Access och i så fall så är det nog datumet som ställer till problem
SELECT memberID, FName, LName, Birthdate FROM tblMembers WHERE memberID = '0001' OR FName LIKE '%00001%' OR LName LIKE '%00001%' OR Birthdate = #1972-10-18# ORDER BY memberID, LName, FName, Birthdate
------------------
essentitia preter non sans multiplicandum
Jupp, jag kör SQL2000.
Datatyperna är:
memberID, varchar(10)
FName, varchar(50)
LName, varchar(50)
Birthdate, DateTime
Jag lagrar Birthdate som ett giltigt datum i databasen, det är redan kontrollerat.
------------------
~~~~~~~~~~~~~~~~~~~~
Silvio Fumei
silvio@fumei.net
www.fumei.net
~~~~~~~~~~~~~~~~~~~~
Fick det att funka till slut. På ett lite konstigt sätt. Jag ändrade till
SELECT memberID, FName, LName, Birthdate FROM tblMembers WHERE memberID [b]LIKE[/b] '0001' OR FName LIKE '%00001%' OR LName LIKE '%00001%' OR Birthdate = '1972-10-18' ORDER BY memberID, LName, FName, Birthdate
så funkade det helt felfritt.
------------------
~~~~~~~~~~~~~~~~~~~~
Silvio Fumei
silvio@fumei.net
www.fumei.net
~~~~~~~~~~~~~~~~~~~~
Det där verkar skumt. Om du kan använda like så skall det fungera med = också.
------------------
essentitia preter non sans multiplicandum