[ KizaBG @ 04.03.2009. 11:14 ] @
uh ....

u sql-i imam proceduru, koja za kriterijum datuma koristi

AND (@DatumOd IS null OR (
DATEPART(dd, u.[Datum]) >= DATEPART(dd, @DatumOd) AND
DATEPART(mm, u.[Datum]) >= DATEPART(mm, @DatumOd) AND
DATEPART(yyyy, u.[Datum]) >= DATEPART(yyyy, @DatumOd)))
AND (@DatumDo IS null OR (
(DATEPART(dd, u.[Datum]) <= DATEPART(dd, @DatumDo) AND
DATEPART(mm, u.[Datum]) <= DATEPART(mm, @DatumDo) AND
DATEPART(yyyy, u.[Datum]) <= DATEPART(yyyy, @DatumDo)))

i to je sve radilo OK.

onda sam pre par meseci uzeo da kastujem datum na formama (u pitanju je VS. Net 2005, Windows forms aplikacija) pa sam

1. u Program.cs fajlu dodao : Application.CurrentCulture = new System.Globalization.CultureInfo("en-us");

2. a na svim formama sam za datum stavio: Format: Custom , a custom format : mm-dd-yyyy ..

i sad mi ovo pretrazivanje u SQL-u ne vraca nista :((

pitanje: kako kastovati datume na formi, da uvek prikazuju datum u formatu mm-dd-yyyy, a a da mi ovo pretrazivanje ipak radi ?

10000 x thanks in advance

[ KizaBG @ 04.03.2009. 14:08 ] @
resio tako sto sam stavio @DatumOd <= Datum <= @DatumDo

jedino sto mi ne radi ok je .. ako imam zapis koji je napravljen npr. 20.marta.2009 , i ako u kriterijum pretrage (dataTime picker) stavim 20.mart.2009, nece uzeti u obzir zapis sa tim datumom, vec moram da stavim 21.mart.2009.

ali ok ...
[ mmix @ 04.03.2009. 14:16 ] @
A sto ne koristis BETWEEN?

WHERE Datum BETWEEN @DatumOd AND @DatumDo
[ KizaBG @ 04.03.2009. 14:31 ] @
Probao, ali opet ne daje dobar rezultat

WHERE ((@OsobaID IS null OR u.[OsobaID] = @OsobaID)

AND (@DatumOd IS null OR ( Datum BETWEEN @DatumOd AND @DatumDo ))
AND (@DatumDo IS null OR (Datum BETWEEN @DatumOd AND @DatumDo ))

pozdrav, hvala za pomoc
[ Zidar @ 04.03.2009. 16:57 ] @
datum je decimalni broj u stvari. Ako je tvoj Datum u bazi = '25 Feb 2008 14:50' onda ce ga pretraga tipa
SELECT .. WHERE datum <= '25 Feb 2008' promasiti. Zato sto je '25 Feb 2008 14:50' veci od '25 Feb 2008' . '25 Feb 2008' je u stvari '25 Feb 2008 00:00'

BETWEEN isto tako nece pomoci, cak je upotreba <= ,=> bolja nego BETWEEN u nekim slucajevima.

Verovatno negd eu procesu datum uzimas sa satima i minutima i zato ga WHERE promasi. Stavi u kriterijum ono +1 na DoDatuma i trebalo bi da proradi.