Avatar billede ameq Nybegynder
27. august 2003 - 13:50 Der er 22 kommentarer og
1 løsning

Plus dag til dato i select

Hej
Jeg kan ikke huske om man kan plus f. eks. 2 til en dato i en select

select Count(*) As Two_Day from call_log where Date_End => Date+2 eller noget i den stil
Avatar billede cesil Nybegynder
27. august 2003 - 14:08 #1
noget i den stil

select Count(*) As Two_Day from call_log where (Date_End => dateadd("d",2,Date))
Avatar billede eagleeye Praktikant
27. august 2003 - 14:09 #2
Du bruger  DATE_ADD(date,INTERVAL expr type)


select Count(*) As Two_Day from call_log where Date_End => DATE_ADD(CURDATE(), INTERVAL 2 DAY)


http://www.mysql.com/doc/en/Date_and_time_functions.html
Avatar billede ameq Nybegynder
27. august 2003 - 14:17 #3
select Count(*) As Two_Day from call_log where Date_End >= DATE_ADD(DATE, INTERVAL 2 DAY) <- skal den ikke se sådan ud? Lige hvad jeg læse ind på MySQL =)
Avatar billede eagleeye Praktikant
27. august 2003 - 14:23 #4
Ja
men jeg tror ikke mySQL function som giver dagen i dage hedder DATE, den mener jeg hedder CURDATE(), altså som i mit svar.
Avatar billede ameq Nybegynder
27. august 2003 - 14:26 #5
ja men det er også et kolonne navn som hedder date.. måske lidt dumt.. men nu hedder der det =)
Avatar billede eagleeye Praktikant
27. august 2003 - 14:27 #6
Ja hvis det er din egen kolonne som hedder date så brug den du selv har vist.
Hvis det giver problem med data så kan du prøve at sætte [] omkring for [date]
Avatar billede ameq Nybegynder
27. august 2003 - 14:30 #7
[TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '[DATE], INTERVAL 2 DAY)' at line 1

det er den hvis ikke så glad for... piv piv
Avatar billede eagleeye Praktikant
27. august 2003 - 14:38 #8
Så prøv ude []
Avatar billede ameq Nybegynder
27. august 2003 - 14:41 #9
yse det prøve jeg lige... men skal lige kigge efter om det er rigtig... det tager nok 2 min eller 10 =)
Avatar billede ameq Nybegynder
27. august 2003 - 14:49 #10
okey hvad jeg kan tælle mangler jeg to poster når jeg udskriver... jeg får 2
men (poster i min db)
Date:        Date_End:
8/25/2003      8/27/2003
8/26/2003      8/27/2003
8/26/2003      8/27/2003
8/26/2003      8/27/2003

alle de poster skulle da være 2 eller mendre en 2 og der ved bliver tæl med? eller hva
Avatar billede ameq Nybegynder
27. august 2003 - 14:52 #11
og jeg mangler 2 endnu.. nolge som er 0 dage imellen
Avatar billede eagleeye Praktikant
27. august 2003 - 14:54 #12
hmm og begge kolonner er af typen DATETIME i tabellen?
Avatar billede ameq Nybegynder
27. august 2003 - 14:55 #13
select Count(*) As Two_Day from call_log where (Date_End <> DATE_ADD(DATE, INTERVAL 2 DAY))

okey den her er ond! der får jeg også 2 poster...

select Count(*) As Two_Day from call_log where (Date_End <> DATE_ADD(DATE, INTERVAL 10 DAY))

og her får jeg også to poster!!
Avatar billede ameq Nybegynder
27. august 2003 - 14:56 #14
27/08-2003 14:54:52 <- sorry den have jeg ikke set, en de er varchar... jeg skal prøve at skrifte dem?
Avatar billede ameq Nybegynder
27. august 2003 - 14:59 #15
der er vel nok at det er en date?
Avatar billede eagleeye Praktikant
27. august 2003 - 14:59 #16
Ja så kan jeg godt forstå der ser underlidt ud, du kan prøve at skift.

Eller lave en Type Cast til DATETIME i SQL sætningen for de to kolonner:

select Count(*) As Two_Day from call_log where (DATE(Date_End) <> DATE_ADD(DATE(DATE), INTERVAL 10 DAY))
Avatar billede eagleeye Praktikant
27. august 2003 - 15:00 #17
Ja Date skulle også være nok, eller sammenligner den dem som streng med dato og ikke dato med dato.
Avatar billede ameq Nybegynder
27. august 2003 - 15:01 #18
ja for da jeg satte dem til date de fæler fuckede den SQL str med One_Day op...

det fatter jeg så slet ikke...
Avatar billede eagleeye Praktikant
27. august 2003 - 15:03 #19
?? ikke helt med.
Prøv med vchar igen og så konverter med DATE() som før vist .
Avatar billede ameq Nybegynder
27. august 2003 - 15:04 #20
Yes med den line her
select Count(*) As Two_Day from call_log where (DATE(Date_End) <= DATE_ADD(DATE(DATE), INTERVAL 2 DAY))

Får jeg den her fejl...

[TCX][MyODBC]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(Date_End) <= DATE_ADD(DATE(DATE), INTERVAL 2 DAY))' at line 1
Avatar billede eagleeye Praktikant
27. august 2003 - 15:06 #21
Det er nok fordi den ikke kanbruger mm/dd/yyyy som en gyldig dato.

mySQL bruger yyyy-mm-dd som dato format.
Avatar billede ameq Nybegynder
27. august 2003 - 15:08 #22
arrr FUCK!!! ja...

arrr man så må jeg script mig ud af det..
Avatar billede ameq Nybegynder
27. august 2003 - 15:32 #23
hm tak for hjælpen =)
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