Das Ziel besteht darin, standardmäßig alle Eingabefelder einer Abfrage mit einer '%'
aufzufüllen und den Benutzer echte Werte eingeben zu lassen, wo immer sie wollen. Dies verursacht jedoch ein Problem für das Feld DATE/TIME
. Ich erhalte den Fehler: Conversion failed when converting date and/or time from character string.
Wie kann ich das Äquivalent von '%'
aber für Daten erreichen?SQL: Was entspricht "%" für Datum/Uhrzeit?
DECLARE @trans_date datetime = '%'
SELECT
t.lp_num,
t.trans_date
FROM ISW_LPTrans AS t
WHERE t.trans_date = @trans_date
Edit: - Entfernt die LIKE
und ersetzt mit =
, weil die Menschen auf, dass zu viel gehalten konzentriert und es ist nicht im Mittelpunkt dieser Frage.
Wenn itrans_date eine datetime ist und als solche behandelt werden soll, suchen Sie nach Datum * Bereichen * mit BETWEEN/DATEDIFF/DATEPART etc. Andernfalls müssten Sie die Spalte in einen Zeichentyp umwandeln, der lautet ineffizient und für die meisten Suchszenarien nicht übermäßig nützlich. –
Wie kann der Benutzer Daten eingeben? Ist es von einer externen Quelle oder direkt innerhalb des DBMS? Ich bin nicht 100% sicher über 2008, aber ich benutze 2014 und Sie können LIKE '%' direkt mit dem Datum verwenden. Das Problem besteht darin, dass Sie versuchen, die Zeichenfolge '%' als Datum zu speichern. Wenn Sie LIKE verwenden, wird es anders behandelt (im Vergleich zur Verwendung eines = -Zeichens). – CodyMR
@ Cody360c wird es durch Report Builder 3.0 Schnittstelle sein. Also durch einen Bericht. – whatwhatwhat