---
title: "konvertera strängar i mssql"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/38999-konvertera-strängar-i-mssql"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "JAreMANNEN"
published: "2002-03-05T12:37:49.000Z"
updated: "2002-03-05T13:28:55.000Z"
replies: 2
views: 216
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/38999-konvertera-strängar-i-mssql"
---

# konvertera strängar i mssql

## #1 — JAreMANNEN, 2002-03-05T12:37Z

Gör en utsökning mha en Lagrad Procedur, men jag får dessa felmesset hela tiden!!

**Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
\[Microsoft\]\[ODBC SQL Server Driver\]\[SQL Server\]Syntax error converting datetime from character string.
default.asp, line 116**

Min SP ser ut som följande:

```
CREATE PROCEDURE sp_GetLunch
@datum nvarchar(50), [b]<-- Har provat datetime men det funkar inte[/b]
@matratt nvarchar(50),
@pris_topp nvarchar(5),
@pris_botten nvarchar(5),
@matratt_typid nvarchar(5),
@restaurang_typid nvarchar(5),
@restaurang_id nvarchar(5)

AS

DECLARE @WherePrinted int
DECLARE @SQLString nvarchar(4000)
DECLARE @SQLSelectFrom nvarchar(3000)
DECLARE @SQLWhereClause nvarchar(1000)

/*SET @datum = '2002-02-02 00:00:00'
SET @matratt = 'K'
SET @pris_topp = ''
SET @pris_botten = ''
SET @matratt_typid = '1'
SET @restaurang_typid = ''*/

SET @WherePrinted = 0
SET @SQLWhereClause = ''
SET @SQLSelectFrom = 'SELECT     Restaurang.RestaurangId, RestaurangMatratt.Tillbehor5, RestaurangMatratt.Tillbehor4, RestaurangMatratt.Tillbehor3, RestaurangMatratt.Tillbehor2, 
                      RestaurangMatratt.Tillbehor1, RestaurangMatratt.AvhamtningsPris, RestaurangMatratt.Pris, RestaurangMatratt.MatrattTypId, 
                      RestaurangMatratt.Matratt, RestaurangMatratt.Datum, Foretag.Namn, Foretag.ForetagsId, MatrattTyp.Namn AS [Maträtttyp namn], 
	      Restaurangtyp.Namn AS [Restaurangtyp namn], Restaurangtyp.RestaurangtypId, MatrattTyp.MatrattTypId
FROM         Restaurang INNER JOIN
                      RestaurangMatratt ON Restaurang.RestaurangId = RestaurangMatratt.RestaurangId INNER JOIN
                      RestaurangTyper ON Restaurang.RestaurangId = RestaurangTyper.RestaurangId INNER JOIN
                      Restaurangtyp ON RestaurangTyper.RestaurangtypId = Restaurangtyp.RestaurangtypId INNER JOIN
                      MatrattTyp ON RestaurangMatratt.MatrattTypId = MatrattTyp.MatrattTypId INNER JOIN
                      Foretag ON Restaurang.ForetagsId = Foretag.ForetagsId'

IF (@datum) IS NOT NULL AND (@datum) <> ''
BEGIN
	IF (@WherePrinted) = 0
	BEGIN
		SET @WherePrinted = 1
		SET @SQLWhereClause = @SQLWhereClause + ' WHERE '
	END
  ELSE
		SET @SQLWhereClause = @SQLWhereClause + ' AND '
	SET @SQLWhereClause = @SQLWhereClause + ' (RestaurangMatratt.Datum = CONVERT(DATETIME, '''+ @datum + ''', 102)) '
END

IF (@matratt) IS NOT NULL AND (@matratt) <> ''
BEGIN
	IF (@WherePrinted) = 0
	BEGIN
		SET @WherePrinted = 1
		SET @SQLWhereClause = @SQLWhereClause + ' WHERE '
	END
  ELSE
		SET @SQLWhereClause = @SQLWhereClause + ' AND '
	SET @SQLWhereClause = @SQLWhereClause + ' (RestaurangMatratt.Matratt LIKE '''+ @matratt+'%'')'
END

IF (@pris_topp) IS NOT NULL AND (@pris_botten) IS NOT NULL AND (@pris_topp) <> '' AND (@pris_botten) <> ''
BEGIN
	IF (@WherePrinted) = 0
	BEGIN
		SET @WherePrinted = 1
		SET @SQLWhereClause = @SQLWhereClause + ' WHERE '		
	END  
	ELSE
		SET @SQLWhereClause = @SQLWhereClause + ' AND '
  SET @SQLWhereClause = @SQLWhereClause + ' (RestaurangMatratt.Pris BETWEEN ' + @pris_botten + ' AND ' + @pris_topp + ')'
END

IF (@matratt_typid) IS NOT NULL AND (@matratt_typid) <> ''
BEGIN
	IF (@WherePrinted) = 0
	BEGIN
		SET @WherePrinted = 1
		SET @SQLWhereClause = @SQLWhereClause + ' WHERE '
	END
  ELSE
		SET @SQLWhereClause = @SQLWhereClause + ' AND '
	SET @SQLWhereClause = @SQLWhereClause + ' (RestaurangMatratt.MatrattTypId = ' + @matratt_typid + ')'
END

IF (@restaurang_typid) IS NOT NULL  AND (@restaurang_typid) <> ''
BEGIN
	IF (@WherePrinted) = 0
	BEGIN
		SET @WherePrinted = 1
		SET @SQLWhereClause = @SQLWhereClause + ' WHERE '
	END
	ELSE
		SET @SQLWhereClause = @SQLWhereClause + ' AND '	
	SET @SQLWhereClause = @SQLWhereClause + ' (Restaurangtyp.RestaurangtypId = ' + @restaurang_typid + ')'
END

IF (@restaurang_id) IS NOT NULL  AND (@restaurang_id) <> ''
BEGIN
	IF (@WherePrinted) = 0
	BEGIN
		SET @WherePrinted = 1
		SET @SQLWhereClause = @SQLWhereClause + ' WHERE '
	END
	ELSE
		SET @SQLWhereClause = @SQLWhereClause + ' AND '	
	SET @SQLWhereClause = @SQLWhereClause + ' (RestaurangMatratt.RestaurangId = ' + @restaurang_id + ')'
END

SET @SQLString = @SQLSelectFrom + ' ' + @SQLWhereClause

--PRINT @SQLString

EXEC sp_executesql @SQLString
GO
```

Hoppas jag an få lite HILFE här.. ;)

THX!

Permalänk: https://www.webforum.nu/p/38999

## #2 — LarsG, 2002-03-05T13:28Z

```
SET @SQLWhereClause = @SQLWhereClause + ' (RestaurangMatratt.Datum = '''+ @datum + ''') '
```

Det finns ingen anledning att konvertera datumet.

Hur ser datumsträngen som du skickar in ut?

Permalänk: https://www.webforum.nu/p/616968

## #3 — JAreMANNEN, 2002-03-05T13:28Z

Verkar inte som om det är SP'n som strular ändå.....

Kommer tebax med mer info!

Permalänk: https://www.webforum.nu/p/616969

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/38999-konvertera-strängar-i-mssql
