[ MACTEPx @ 04.08.2011. 18:40 ] @
Imam tabelu u kojoj hocu da izbrisem 1 red pomocu sql-a, a na osnovu datuma.
Code:
delete from tabela where datum=#1/2/2011#

Pokusao sam ovako nesto na vise nacina (sa navodnicima, bez #...) i uvek dobijam poruku o gresci.
Datum je inace primarni kljuc u tabeli.

Da li postoji neko resenje za ovo?
[ vujkev @ 04.08.2011. 19:03 ] @
Koja je greška i koja baza?

Code:
delete from tabela where datum = '12/31/2011' 
[ MACTEPx @ 04.08.2011. 21:56 ] @
access baza a greska bude type mismatch (kad datum stavim pod navodnike) ili u ovom slucaju sa # uopste ne javi gresku ali ni ne odradi delete tj. kao da se nije ni izvrsila sql naredba
[ vujkev @ 04.08.2011. 22:11 ] @
davno sam radio sa access-om i koliko se sećam datum treba da bude ograničen sa "#" tako da je to ispravan format. Tvoj jedini "problem" je što datum treba da bude u formatu mm/dd/yyyy, drugim rečima on je tebi uspešno izvršio upit, ali je obrisao pogrešan datum :)
[ MACTEPx @ 05.08.2011. 10:02 ] @
Pokusao sam i sa mm/dd/yyyy i opet nece. Ne javi gresku ali ne obrise nista iz baze.
[ vujkev @ 05.08.2011. 10:15 ] @
Code:
delete from table1 where field1 = #12/31/2010#


ovo definitivno radi. Pogledaj da li brišeš u pravoj tabeli, da li čitaš pravu tabelu i sl.
[ MACTEPx @ 05.08.2011. 13:40 ] @
Radi, to je bio problem, prvo ide mesec pa dan iako u tabeli pise suprotno. Hvala! Da li postoji neka opcija da datum ide dd/MM/yyyy umesto MM/dd/yyyy ili moram da pravim neku funkciju koja ce da konvertuje datum u drugi format?
[ Getsbi @ 07.08.2011. 03:58 ] @
Postoji finkcija Format(Date, "dd_mm_yy"), pretvaranje tekućeg datuma u string i CDATE() za vraćanje u tip datuma. Obrati pažnju na reginalno setovanje datuma u Windows-u.
[ Zidar @ 08.08.2011. 14:04 ] @
Evo najbolje objasnjenje i neke korisne funkcije za opisani problem: http://www.allenbrowne.com/ser-36.html

Slican problem srecemo kada u kveriju imamo decimalni broj. Brojevi koje se pojavljuju u SQL izrazima moraju biti formatirani po americkom pravopisu, ovako:

dvanaeset hiljada petstojedan koma trideset dva se u Srbiji psie kao 12.501,32. Americki nacin pisanje je 12,502.32.

Ovaj kveri ce prijaviti gresku: "SELECT * FROM Ulaz WHERE Total = 12501,32"
Ovaj kveri radice ispravno: "SELECT * FROM Ulaz WHERE Total = 12501.32"

Ovo s brojevima necete primetiti dok radite za klijenta u svojoj zemlji. Ja sam se opekao na ovome kad sam u Kanadi radio program za nekoga u Evropi.