2 Stimmen

Wie konvertiere ich eine Zeichenfolgenvariable in eine Datumsvariable in SQL Server um?

Ich bin relativ neu bei SQL-Server; Ich versuche, ein Startdatum und Enddatum aus einer Form-Variable als Zeichenfolge abzurufen und in das Datumsformat (yyyy-mm-dd) umzuwandeln, aber ich kann nichts finden, was funktioniert. Der versuchte Code und der resultierende Fehler werden unten angezeigt. Jeder Ratschlag wäre willkommen.

declare @startdate as varchar
declare @enddate as varchar
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

Der Fehler, den ich immer bekomme, lautet:

Beim Konvertieren von Datum/Uhrzeit aus Zeichenfolge ist ein Fehler aufgetreten.

Wie kann ich das beheben?

2voto

Taryn Punkte 233818

Geben Sie eine Länge für Ihren varchar an:

declare @startdate as varchar(10)
declare @enddate as varchar(10)
set @startdate=cast(@startdate as datetime)
set @enddate=cast(@enddate as datetime)

SELECT order_date, inv_no 
from invoices 
where order_date between @startdate and @enddate

0voto

joby-flick Punkte 1680

Sie müssen nicht unbedingt besetzen

deklarieren @startdate varchar(50)
deklarieren @enddate varchar(50)
deklarieren @start datetime = @startdate, @end datetime = @enddate
auswählen @start, @end

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X