Avatar billede krogstrup Nybegynder
01. december 2001 - 12:49 Der er 28 kommentarer og
2 løsninger

SQL: WHERE dato <= #01-12-2001# - Hvordan gør man det ?

Jeg har aldrig arbejdet med dato-kriterier i SQL sætninger før, og har derfor brug for at vide hvordan det foregår !

Jeg troede at skulle bruges på denne måde:

SELECT * FROM sider WHERE(startDato = #01-12-2001#)

Men det virker tilsyneladende ikke, på trods af at min tabel indeholder 3 records hvor feltet startDato er sat til \"01-12-2001\".

Når jeg bruger ovenstående SQL sætning får jeg 0 records ud !?!

Hvis du fortæller mig at ovenstående er korrekt syntaks, kan du så ikke kikke på dette spm:

http://www.eksperten.dk/spm/140965
Avatar billede dth Nybegynder
01. december 2001 - 12:51 #1
\"Select * from sider where startdato = 01-12-2001\"
Avatar billede keysersoze Ekspert
01. december 2001 - 12:51 #2
SELECT * FROM sider WHERE(startDato = \'#01-12-2001#\')

men det kommer også an på hvilken database det er...

Avatar billede nute Nybegynder
01. december 2001 - 12:51 #3
det er da ikke nødvendig å opprette 2 spørsmål-...
Avatar billede dth Nybegynder
01. december 2001 - 12:52 #4
Eller sådan...

\"Select * from sider where startdato = \" & Date
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:55 #5
keysersoze >>>

Jeg bruger MS Access og får følgende fejl, hvis jeg sætter \' rundt om:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC-driver understøtter ikke de ønskede egenskaber.
Avatar billede excession Nybegynder
01. december 2001 - 12:58 #6
er feltet i tabellen dato format?
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:58 #7
dth >>>

Ingen af dine forslag virker - jeg får 0 records !
Avatar billede krogstrup Nybegynder
01. december 2001 - 12:59 #8
ja - kort datoformat
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:00 #9
jeg kører på win2000 pro dansk

jeg har endda sat følgende i toppen af min side:
session.LCID = 1030
Avatar billede dth Nybegynder
01. december 2001 - 13:01 #10
Hvilket format er feltet i databasen for det kan være du skal gøre sådan:
\"select * from sider where FormatDateTime(startdato), VbShortDate = 01-12-2001\"
Avatar billede dth Nybegynder
01. december 2001 - 13:02 #11
FEJL:

\"Select * from sider Where FormatDateTime(startdato, vbShortDate) = 01-12-2001\"
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:02 #12
som tidligere nævnt er feltet af typen dato(kort datoformat)
Avatar billede excession Nybegynder
01. december 2001 - 13:03 #13
er du sikker på at det ikke er den måde du udskriver resultater på den er gal med?
Avatar billede dth Nybegynder
01. december 2001 - 13:04 #14
Hvad kommer den med af fejl hvis du bruger mit sidste forslag??
Avatar billede nute Nybegynder
01. december 2001 - 13:05 #15
krogstrup >> et lite tips til hvordan du kan teste:

kopier en dato fra tabellen. opprett en ny query hvor du skriver din SQL og kopier din dato inn. det *skal* gi deg resultat
Avatar billede keysersoze Ekspert
01. december 2001 - 13:05 #16
prøv engang at udskrive datoen fra databasen på en side - på den måde kan du se om der skal byttes om på din sql-sætnings dato så den måske skal hedde 2001-12-01
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:05 #17
excession >>>

Hvis jeg fjerner mit dato-kriterie får jeg listet 4 records der opfylder de andre kriterier jeg har opsat !!!
Avatar billede dth Nybegynder
01. december 2001 - 13:06 #18
Du kan også gøre det at når du har lavet din SQL sætning, så skriver du den ud, så du kan se den..

Response.Write strSQL
Avatar billede dth Nybegynder
01. december 2001 - 13:07 #19
Kan du så ikke smide hele sætningen på??
Avatar billede excession Nybegynder
01. december 2001 - 13:10 #20
SELECT * FROM sider WHERE startDato = \'01-12-2001\'

man behøver vist ikke at bruge # udenom datoen gør man?
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:11 #21
keysersoze >>>

Det mærkelige er at hvis jeg udskriver datoen fra databasen skriver den \"01-12-2001\"

men hvis jeg på trods af dette i min SQL sætning skriver WHERE startDato = #12-01-2001# SÅ FUNGERER LORTET

:-)

????!!!!!
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:12 #22
hmmm - jeg HADER at dansk & amerikansk datoformat er forskelligt !!!!
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:13 #23
Jeg fatter bare ikke en meter af det !

min access er dansk
min windows er dansk
mine dato-formater er danske

hvorfor skal jeg så pludselig bruge amerikansk datoformat for at få det til at virke ?
Avatar billede keysersoze Ekspert
01. december 2001 - 13:14 #24
det er sikkert fordi datoen STÅR sådan i databasen - men idet du har en session.lcis = 1030 i toppen kommer datoen ud anderledes end den er i databasen...
Avatar billede keysersoze Ekspert
01. december 2001 - 13:14 #25
måske fordu brugergrændsefladen til access er dansk men ikke selve databasen jet er dansk - ved det faktisk ikke...
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:17 #26
keysersoze >>>

Hvis jeg åbner selve databasen vises datoerne også som 01-12-2001
Avatar billede burningice Nybegynder
01. december 2001 - 13:18 #27
hehe... er icq ikke bare et lækkert program :)) Ej, david kontaktede mig via icq og jeg kom så op med den løsning han beskriver i indæg 01/12 2001 13:11:34
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:19 #28
Da du kom meget tæt på keysersoze vil jeg give dig 15 points og cyberfessor 45 points for at give det direkte korrekte svar !
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:20 #29
Da du kom meget tæt på keysersoze vil jeg give dig 15 points og cyberfessor 45 points for at give det direkte korrekte svar !
Avatar billede krogstrup Nybegynder
01. december 2001 - 13:20 #30
ups - det var ikke meningen at det skulle stå 2 gange

Håber pointfordeling er i orden :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester