# [MS SQL Abfrage] Mit datediff() und between Zeitfenster abfragen



## nauti_lus (6. April 2005)

Hallo zusammen,

hoffe das mir hier jemand helfen kann. komme nicht mehr weiter bei meinem Problem.
Ich möchte eine art "Zeitfendter" mit einer SQl-Abfrage bekommen. Habe mal ein "vorab-sql-string" gebastelt aber er geht nicht vielleicht weiss da jemand eine lösung


```
SELECT RAC_Index
FROM RAC_Race
WHERE time_window between
(datediff(mi,getdate(),RAC_PostTime) = -1) as time_window
and
(datediff(mi,getdate(),RAC_PostTime) = +1) as time_win
```
wobei RAC_PostTime vom Typ datetime ist.

danke im vorraus

nautilus


----------



## x_Red_Eagle_x (6. April 2005)

Haben die beiden Uhrzeiten das gleiche Format?

eine Möglichkeit um das Problem zu umgehen ist wobei 104 das Datumsformat angibt

```
CONVERT(datetime, '06.04.2005', 104)
```
Und zum AS -> ich glaube diese Fkt. kann man in der WHERE- Klausel nicht verwenden

mfg


----------



## nauti_lus (6. April 2005)

ja, beide haben das gleiche format 
'2005-04-06 12:23:00.000'

möchte ein zeitfenster von 4 minuten also +/- 2  deswegen das datediff()
mit convert() komme ich nicht auf die minuten... oder?


----------



## andi_g69 (6. April 2005)

Ich verstehe noch nicht ganz, worauf sich das Zeitfenster beziehen soll, bzw was in diesem Zeitfenster liegen soll?
Nichtsdestotrotz, syntaktisch richtig wäre folgende Variation deines Statements:
SELECT RAC_Index
FROM RAC_Race
WHERE DATEDIFF (mi, GETDATE(), RAC_PostTime) BETWEEN -2 AND 2

Ergebnis: Alle Datensätze aus RAC_Race, deren RAC_PostTime im Zeitfenster Jetzt +/- 2 Minuten liegt.


----------



## nauti_lus (7. April 2005)

andi_g69 hat gesagt.:
			
		

> Ich verstehe noch nicht ganz, worauf sich das Zeitfenster beziehen soll, bzw was in diesem Zeitfenster liegen soll?



danke, genau das sollte es sein, was ich suche...

--> mein script soll mir 2 minuten vor und 2 minuten nach einem startzeitpunkt für ein rennen dieses renne bzw den index dazu ausgeben..


----------

