Avatar billede david_dollas Nybegynder
18. juni 2001 - 10:29 Der er 23 kommentarer og
1 løsning

data mellem to dato\'er

HEj.

Jeg har et tids felt i min database der hedder 02-02-01 13:13:13

Jeg har så tage de første 11 tegn så jeg kun har datoen.

den skal så kun skrive noget hvis data\'en fra databasen er mellem de to datoer jeg har valgt. ???? Hvordan...
Avatar billede orca Nybegynder
18. juni 2001 - 10:39 #1
De første 11 tegn? Hvordan precist ser datoen ud når du skal sammenligne den?
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 10:42 #2
SELECT * WHERE Dato BETWEEN dato1 AND dato2
Avatar billede david_dollas Nybegynder
18. juni 2001 - 10:43 #3
de ser ens ud:

variable_datostring = 18-06-2001
variable_fra_dato = 01-06-2001
variable_til_dato = 18-06-2001


Den skal så skrive \"?\"noget hvergang dato feltet i databasen er mellem de to datoer, variable_fra_dato og variable_til_dato

Men når jeg skriver

if fradato < datoen then

response.write \"ok\"


end if

så skriver den bare alle poster...
Avatar billede david_dollas Nybegynder
18. juni 2001 - 10:44 #4
Meget flot moonduck men feltet i databasen er en dato & tid i et felt, felt. så hvordan gør jeg lige det?
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 10:48 #5
variable_fra_dato = variable_fra_dato & \" 00:00:01\"
variable_til_dato = variable_til_dato & \" 23:59:59\"

SELECT * FROM table WHERE dato between \" & CDate(variable_fra_dato) & \" AND \" & CDate(variable_til_dato)


Men i bund og grund er problemet vel at du ikke har en gennemtænkt databasestruktur.
Avatar billede david_dollas Nybegynder
18. juni 2001 - 10:56 #6
Det du har lavet der moonduck virker ikke??? den skriver:

Fradato:17-06-2001
Tildato:18-06-2001

Select * from BogData_aendringer where tid between 17-06-2001 00:00:01 AND 18-06-2001 23:59:59 and feltnavn = \'_rab\' order by id
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near \'00\'.

/admin/bogdata/bog_stat_test.asp, line 54


Avatar billede jakobandersen Nybegynder
18. juni 2001 - 10:57 #7
Prøv at putte # omkring dine datoer..
Avatar billede david_dollas Nybegynder
18. juni 2001 - 10:59 #8
Så ser den sådan her ud:

Select * from BogData_aendringer where tid between #17-06-2001 00:00:01# AND #18-06-2001 23:59:59# and feltnavn = \'_rab\' order by id

Men den kommer med den samme fejl-.--
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:11 #9
Har du kørt en CDate() på den prøv med dette:

Select * from BogData_aendringer where tid between #\" & CDate(17-06-2001 00:00:01) & \"# AND #\" & CDate(18-06-2001 23:59:59) & \"# and feltnavn = \'_rab\' order by id
Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:16 #10
Den kommer stadigvæk med:

Fradato:17-06-2001
Tildato:18-06-2001

Select * from BogData_aendringer where tid between #17-06-2001 00:00:01# AND #18-06-2001 23:59:59# and feltnavn = \'_rab\' order by id
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near \'00\'.

/admin/bogdata/bog_stat_test.asp, line 46


Hvad med om man brugte like?

noget alla:

select * from tabel where tid < like %01-01-2001% and tid > like  %02-02-2001


Altså noget med at bruge større end og mindre end tegn? ><
Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:18 #11
eller hvad med den her?

SQL =  \"Select *,convert(char(11), tid,105) as dato from BogData_aendringer where \"
SQL = SQL & \" tid between \" & CDate(fradato) & \" AND \" & CDate(tildato) & \" and feltnavn = \'_rab\' order by id\"

Men når man skriver dato betweeen....... så kommer den med en fejl.-..

Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:24 #12
Ahh jeg troede du brugte Access det er der fejlen ligger:

Select * from BogData_aendringer where tid between \'\" & CDate(17-06-2001 00:00:01) & \"\' AND \'\" & CDate(18-06-2001 23:59:59) & \"\' and feltnavn = \'_rab\' order by id

Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:27 #13
hmmm....

nu for jeg:

Fradato:18-06-2001
Tildato:18-06-2001

Select *,convert(char(11), tid,105) as dato from BogData_aendringer where tid between \'18-06-2001 11:11:01\' AND \'18-06-2001 23:59:59\' and feltnavn = \'_rab\' order by id
Microsoft OLE DB Provider for ODBC Drivers error \'80040e07\'

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

/admin/bogdata/bog_stat_test.asp, line 49


Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:30 #14
Hvis jeg var dig ville jeg aldrig lave den convert() men det er en anden side af sagen...
Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:32 #15
nej okay... Men hvis du laver en sql sætning der virker så ville jeg blive glad...
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:35 #16
SELECT * FROM BogData_aendringer WHERE tid BETWEEN \'18-06-2001 11:11:01\' AND \'18-06-2001 23:59:59\' AND feltnavn = \'_rab\' ORDER BY id
Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:36 #17
Jamn lille ven... Det du laver der virker ikke... det har jeg jo prøvet 2 gang nu...
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:48 #18
Nej du har ikke, jeg har fjernet din CONVERT()...

(Og lad være med at tiltale mig som om jeg er imbicil.)
Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:51 #19
sorry min tiltale, nu har jeg sidet med dette i 100 år, og det virker ikke... ;(

Den linie du skrev der kommer med dette svar:

SELECT * FROM BogData_aendringer WHERE tid BETWEEN \'18-06-2001 11:11:01\' AND \'18-06-2001 23:59:59\' AND feltnavn = \'_rab\' ORDER BY id
Microsoft OLE DB Provider for ODBC Drivers error \'80040e07\'

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

/admin/bogdata/bog_stat_test.asp, line 51



Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:53 #20
Og må jeg lige få at vide hvilken felttype tid er?
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 11:54 #21
Forresten er det lokalt du tester?
Avatar billede david_dollas Nybegynder
18. juni 2001 - 11:58 #22
det er på vores inet server og det er en datotid felt...
Avatar billede jakobandersen Nybegynder
18. juni 2001 - 12:05 #23
Prøv at smide SQLen ind i Query Analyser og kør den derfra..

Prøv også at køre denne:

SELECT *, CAST( tid AS datetime ) FROM  BogData_aendringer WHERE tid BETWEEN CAST(\'18-06-2001\' AS datetime) AND CAST(\'16-06-2001\' AS datetime) ORDER BY id
Avatar billede david_dollas Nybegynder
20. juni 2001 - 12:00 #24
slut...
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