Avatar billede sf Nybegynder
05. januar 2007 - 13:57 Der er 47 kommentarer og
1 løsning

hent data mellem 2 dato'er

jeg har denne sql:
SELECT * FROM tabel WHERE dato BETWEEN #01/01/2007# AND #31/01/2007#;

men den henter kun data fra den første dato 01/01/2007.. kan ikke se hvad der er galt
Avatar billede mugs Novice
05. januar 2007 - 14:08 #1
u skal så ind i SQL sætningen hver gang du vil ændre dit kriterie. Hvis du bruger denne som kriterie, kan du indtaste start- og slutdato:

Between [Indtast start] And [indtast slut]
Avatar billede mugs Novice
05. januar 2007 - 14:08 #2
SQL ser således ud:

SELECT Tabel1.Dato1, Tabel1.Felt1, Tabel1.Felt2, Tabel1.Felt3
FROM Tabel1
WHERE (((Tabel1.Dato1) Between [Indtast start] And [indtast slut]));
Avatar billede jensen363 Forsker
05. januar 2007 - 14:10 #3
mugs > uanset hvad, er det vel mystisk at fremgangsmåden kun returnerer én dato, men mindre der ikke er andre datoer end den 1. januar 2007.

SQL ser korrekt ud
Avatar billede sf Nybegynder
05. januar 2007 - 14:58 #4
jeg vil ikke taste det hver gang.. problemet er bare at den kun henter den første dato og ikke alle dem der ligger imellem
Avatar billede sf Nybegynder
05. januar 2007 - 14:59 #5
der er andre end d 1. første.. derfor jeg ikke kan forstå jeg kun får den
Avatar billede fdata Forsker
05. januar 2007 - 16:40 #6
Prøv for sjov:
SELECT * FROM tabel WHERE dato BETWEEN #01/01/2007# AND #01/31/2007#;
Avatar billede sf Nybegynder
05. januar 2007 - 18:01 #7
har prøvet at bytte om på md og dag.. men hjælper ikke
Avatar billede fdata Forsker
05. januar 2007 - 18:04 #8
Mystisk ...
Har du prøvet med andre intervaller (hvor du ved, der er hits)?
Avatar billede sf Nybegynder
05. januar 2007 - 18:10 #9
er der ikke anden måde at sige på jeg vil hente den første md af 2007?
Avatar billede sf Nybegynder
05. januar 2007 - 18:12 #10
er lidt bange for der er noget galt med min dato mærkning
Avatar billede mugs Novice
05. januar 2007 - 18:12 #11
Du kan evt. bruge datepart. Indsæt denne i en forespørgsel i en tom kolonne:

Udtryk1: DatePart("m";[Dato])
Avatar billede mugs Novice
05. januar 2007 - 18:15 #12
Dato mærkning????
Avatar billede sf Nybegynder
05. januar 2007 - 18:16 #13
tror det er dansk/eng der driller mig.. :(
Avatar billede fdata Forsker
05. januar 2007 - 18:16 #14
Hvilken datatype bruger du til datoerne?
Avatar billede terry Ekspert
05. januar 2007 - 18:18 #15
Between #2007/01/01# AND #2007/01/31#

Danish and English date formats are the same, US is different
Avatar billede sf Nybegynder
05. januar 2007 - 18:20 #16
det her er 12 md dag 11 "12-11-2006" men md 12 og dag 13 ser sådan ud: 13-12-2006. det hele er noget jeg sætter ind fra asp.
Avatar billede sf Nybegynder
05. januar 2007 - 18:21 #17
ja ok US..
Avatar billede terry Ekspert
05. januar 2007 - 18:29 #18
Have you tried Between #2007/01/01# AND #2007/01/31#?
Avatar billede fdata Forsker
05. januar 2007 - 18:33 #19
Det ser ud som om, du fodrer Access forkert fra ASP. Access har ingen problemer med 13.12.06 (der findes jo ingen 12.13.06); men 11.12.06 tolkes forkert som 12.11.06. Prøv at sæt datoerne ind fra ASP i formatet mm/dd/åå (altså med skråstreger).
Avatar billede sf Nybegynder
05. januar 2007 - 18:49 #20
< terry yes same problem
Avatar billede terry Ekspert
05. januar 2007 - 18:53 #21
I know almost nothing about ASP but I am sure you need a declaration in your ASP which indicates which date format to use.

You could also try converting you rdates to Long Integers

WHERE Clng(dato) Between clng(FraDato) AND clng(TilDato)
Avatar billede nih Novice
06. januar 2007 - 23:52 #22
2 forslag mere:
SELECT * FROM tabel WHERE dato > #2007-01-01# AND dato < #2007-01-31#
ELLER
SELECT * FROM tabel WHERE dato > '2007-01-01' AND dato < '2007-01-31'

Niels
Avatar billede mugs Novice
07. januar 2007 - 14:05 #23
Denne fungerer i en forespørgsel:

SELECT tabel1.dato
FROM tabel1
WHERE (((tabel1.dato) Between #1/1/2007# And #1/31/2007#));
Avatar billede mugs Novice
07. januar 2007 - 14:09 #24
Og denne udformning er også OK:

SELECT tabel1.dato FROM tabel1 WHERE (((tabel1.dato) Between #1/1/2007# And #1/31/2007#));
Avatar billede fdata Forsker
07. januar 2007 - 17:30 #25
mugs >> Har jeg allerede foreslået  ;o)
Det lugter af et ikke-standard datoformat
Avatar billede mugs Novice
07. januar 2007 - 17:59 #26
fdata > Jeg ikke checket om der var samme forslag. Dette burde være et banalt problem og skulle være løst for længst.
Jeg er enig i dine betragtninger vedr. dato formatet eller måske rettere noget andet. Formater er jo kun det, vores øjne ser på skærmen.

Jeg kan kun opfordre spørgeren at kontrollere, om feltet er af dato-typen, og desuden kontrollere om Acces og brugeren har samme opfattelse af, om f.eks 2007-01-02 er 2. JAN eller 1. FEB.
Avatar billede terry Ekspert
07. januar 2007 - 18:04 #27
you have to remember that the user is using an Access database from ASP which isnt the same as when working in Access. There are a number of things which can have influence on teh date format. For example the server where the database is could have regional settings in US format but the the users PC is in Danish. Which machine decides what format is used in the SQL SELECT?
Avatar billede sf Nybegynder
08. januar 2007 - 16:05 #28
problemet må være min dato mærkning.. hvis jeg fra asp sætter denne dato ind: 08-01-2007 som er den 8 januar får jeg denne dato i databasen: 01-08-2007, kan jeg ikke helt forstå
Avatar billede mugs Novice
08. januar 2007 - 16:44 #29
Det er fordi serveren og din egen maskine har forskellige daesettings. Prøv i kontrolpanelet, at kontrollere dine regionale settings.
Avatar billede terry Ekspert
08. januar 2007 - 16:46 #30
Is the database and the ASP page on the same PC? Dates are alwasy stored in Access in the same way. How you see the dates is goverened by the regional settings.

Take a look at this link http://www.codetoad.com/asp/format_date_time.asp at the section
"International Date and Time". Her you can see that it is possible to give which date format you want to use on your WEB page, which I think you will find should be the same as the server where you database is.
Avatar billede terry Ekspert
08. januar 2007 - 16:48 #31
Rememebr that a wbe application can be opened from almost any country, and therefore the date format will change. That is why you need to specify (see link) which regional settings the web page must use. Otherwise different date formats will end up getting written to the dB.
Avatar billede sf Nybegynder
08. januar 2007 - 22:56 #32
det hjælper mig stadig ikke at sætte et "lcid" i min insert into ser dato rigtig ud men når jeg kigger i databasen har den byttet om på md og dag, men efter den 13. i hver md ser det rigtig ud igen
Avatar billede sf Nybegynder
08. januar 2007 - 22:56 #33
ligger på et cliche webhotel
Avatar billede sf Nybegynder
08. januar 2007 - 23:01 #34
sql fra asp: insert into database: (b_id, tid, dato) values (999 , #1-8-2007 22:44:23#,#08-01-2007#)

når jeg henter og åbner databasen ser det sådan ud: tid: 08-01-2007 22:44:23 dato:01-08-2007

(har jeg med sat 2 forskellige datoer ind med vilje)
Avatar billede kabbak Professor
08. januar 2007 - 23:02 #35
SELECT *
FROM tabel
WHERE ((([dato]) Between DateSerial(2007,1,1) And DateSerial(2007,2,1)));
Avatar billede sf Nybegynder
08. januar 2007 - 23:22 #36
hey virker faktisk.. men er stadig ikke glad for den vender mit dato format
Avatar billede kabbak Professor
08. januar 2007 - 23:35 #37
Du kan jo bruge dateSerial til at indsætte data med også, så får du jo ingen fejl
Avatar billede terry Ekspert
09. januar 2007 - 10:21 #38
have you tried inserting the date like this?

insert into database: (b_id, tid, dato) values (999 , '2007/01/08 22:44:23','2007/01/08')
Avatar billede fdata Forsker
09. januar 2007 - 22:07 #39
Jeg foreslog 05/01-2007 18:33:09: "Prøv at sæt datoerne ind fra ASP i formatet mm/dd/åå (altså med skråstreger)".
Har du prøvet det?
Avatar billede sf Nybegynder
17. januar 2007 - 12:23 #40
hmm har stadig samme problem..access vender om på dag og med efter d 12 og kan ikke bruge min dato'er til noget da jeg ikke kan hente dem ud med en sql og between.. vil meget gerne have flere forslag til dette.
Avatar billede nih Novice
17. januar 2007 - 22:31 #41
Datoer gemmes i Access som kommatal - uanset maskinens opsætning

I JET SQL skal du bruge en tekststreng med formattet 'mm-dd-yy hh:nn:ss' eller 'yyyy-mm-dd hh:nn:ss'
Igen uanset maskinens opsætning

Der hvor det går galt er når du bruger programmeringssproget til at formatere datoen.
VB's funktion now() retunuere maskinens ur i det format som maskinen er sat op til.
Derfor skal du formatere datoerne i SQL koden som 'yyyy-mm-dd'
select ..... Where dato between format(now,'yyyy-mm-dd') and format(now+7,'yyyy-mm-dd')
Jeg ved ikke om format() findes i ASP, men jeg håber du har fanget pointen

Niels
Avatar billede nih Novice
17. januar 2007 - 22:35 #42
Du skal iøvrigt også være sikker på at dine input datoer er korekte - hvis de ikke er det vil forespørgslen ikke returnere rigtigt.
insert into tabel (datofelt) values #12/1/2007#
ovenstående sql indsætter en post med værdien 1. dec 2007 ......

så vil din select .... between selvfølgelig ikke virke
Avatar billede sf Nybegynder
18. januar 2007 - 10:21 #43
kan ikke finde ud af om access ret faktisk gør noget ved min data eller jeg bare ikke kan stole på det jeg ser når jeg åbner access
Avatar billede terry Ekspert
18. januar 2007 - 10:26 #44
what you see in Access is controlled by the PC's regional settings.

So if you have danish regional settings with a date format of

dd/mm/yyyy then 12/11/2007 is 12 November 2007
Avatar billede nih Novice
19. januar 2007 - 07:43 #45
Hi Terry

Du har ret i at det du ser er afhængig af maskinens regionale settings, men når du arbejder direkte i SQL'en er datoformatet ALTID yyyy-mm-dd eller mm-dd-yy

Det er nemt at se:
Hvis man skriver en dato i en forespørgsel - designvisning og skifter til SQL visning har ACCESS ændret dato formattet til yyyy-mm-dd

Maskinens regionale indstillinger fortælle Access hvordan datoformattet i designvisning skal 'oversættes' til Access egen JetSQL format

Niels
Avatar billede terry Ekspert
19. januar 2007 - 11:23 #46
Hi Niels
Yes I'm aware of that. My comment (18/01-2007 10:26:46) was regarding how the actual data is seen, IE in table view. So that sf can see if the data is getting written to the dB as he expects.

If he is inserting yyyy/mm/dd then he may be expecting to see it in the same format which will very likley NOT be the case.
Avatar billede sf Nybegynder
22. januar 2007 - 02:52 #47
hmm er meget glad for alt denne hjælp men er lidt forvirret..

fra database som jeg ser den, når jeg åbner den i access:

dato
9/10/2006
10/10/2006
11/10/2006
12/10/2006
10/13/2006
10/14/2006
10/15/2006

disse er alle fra den 10 MD. problemet for mig er ikke hvordan de ser ud men når jeg henter en MD ud ( med where dato between) men en sql i asp får jeg ikke et rigtigt resultat.

håber i forstå hvad jeg mere og har lidt mere tid til at hjælpe
Avatar billede nih Novice
22. januar 2007 - 08:07 #48
Som jeg skrev i 17/01-2007 22:35:49

Du har indsat datoerne forkert :(
datoerne i din liste er mm-dd-åååå

10. sept
10 okt'
10 nov
10 dec
13. okt
14 okt

Derfor lav din SQL om der indsætter datoerne korrekt
"insert into tabel (datofelt) values 'mm-dd-åååå'"

Niels
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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