Seite 1 von 1

MS SQL Eigenheit....

Verfasst: Sa, 21. Feb 2015 16:21
von satmax
Hallo,
MS SQL Server via Console:

where t.TerminVon between '21.02.2015' and '21.02.2015 23:59:59.998'

liefert korrekt alle Datensätze vom 21.02.2015

where t.TerminVon between '21.02.2015' and '21.02.2015 23:59:59.999'

Liefert auch Datensätze vom 22.02.2015 00:00:00.000 (nicht mehr 22.02.2015 00:00:00.001)


Hat dafür jemand eine Erklärung? Offensichtlich wird da vom SQL Server gerundet!? :banghead:

Hier auch die komplette Abfrage:

Code: Alles auswählen

select distinct a.AuftragNr, 
		(select top 1 TerminVon 
		from TourPos tt 
		where a._ID = tt._ID_Auftrag 
		order by TerminVon ) 
		as termin
from auftrag a
JOIN TourPos t ON a._ID = t._ID_Auftrag
where      t.TerminVon between '21.02.2015'  and '21.02.2015 23:59:59.999'
AND t.laden=1
order by termin , auftragnr

Re: MS SQL Eigenheit....

Verfasst: Sa, 21. Feb 2015 17:24
von georg
Hallo, Markus -


mal mit

between '2015-02-21' AND '2015-02-21-23:59:59.999'

versucht? Führ doch mal einen SELECT auf ein, zwei Sätze aus und übernimmt die Schreibweise, die der Server Dir zurückliefert.

Re: MS SQL Eigenheit....

Verfasst: Sa, 21. Feb 2015 21:02
von satmax
Hallo Georg,

ja, habe ich auch versucht, das geht aber gar nicht.

Code: Alles auswählen

where t.TerminVon between '2015-02-21 00:00:00.000' and '2015-02-21 23:59:59.998'
ergibt:
Meldung 242, Ebene 16, Status 3, Zeile 4
Bei der Konvertierung eines varchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs.