Avatar billede kernelx Juniormester
04. januar 2007 - 17:26 Der er 14 kommentarer og
2 løsninger

MySQL og DATETIME

Hi,

jeg har en MySQL-DB med en table (testtable) som har to col's (testid) og (testdate).
testid har datatype BIGINT og
testdate har datatype DATETIME

nu vil jeg gerne lave en select som finder en row med testid=1 og giver informationer om testdate + 300 sekunder er mindre end tiden nu.

hvordan skal sådan en select se ud?

SELECT testid, (testdate + 300 < timenow) FROM testtable WHERE testid = 1;

hvordan vil SELECT-commando'en se ud, for at få det her til at virke?

med venlig hilsen
KernelX
Avatar billede kalp Novice
04. januar 2007 - 17:33 #1
SELECT testid, testdate FROM testtable WHERE testdate < DateAdd('s',+300,Now()) AND testid = 1

og måske skal der arbejdes lidt i denne del

DateAdd('s',+300,Now())

til

DateAdd('s',+300,Date())
eller
DateAdd('s',+300,Time()) 

eller syntax... måske skal der "" rundt om s.. eller intet!

men ellers vil jeg mene den er der
Avatar billede kalp Novice
04. januar 2007 - 17:34 #2
SELECT testid, testdate FROM testtable WHERE Now() < DateAdd('s',+300,testdate) AND testid = 1

sorry..sådan..

og hvis dit timenow kan bruges skal du bare indsætte den istedet for Now()

men igen.. tjek syntax for DateAdd('s',+300,testdate)
Avatar billede kalp Novice
04. januar 2007 - 17:35 #3
og vend < til > :)

doh!
Avatar billede kernelx Juniormester
04. januar 2007 - 17:52 #4
SELECT testid, testdate FROM testtable WHERE Now() > DateAdd('s',+300,testdate) AND testid = 1
---
#1305 - FUNCTION tmp.DateAdd does not exist

tmp hedder min database
Avatar billede kalp Novice
04. januar 2007 - 18:03 #5
SECOND(NOW())

måske findes dateadd slet ikke som en funktion i Mysql.. så kan du være heldig hvis du kan gøre sådan her

SELECT testid, testdate FROM testtable WHERE Now() > ADDTIME(testdate,300)  AND testid = 1
Avatar billede arne_v Ekspert
04. januar 2007 - 18:03 #6
DATE_ADD(felt,INTERVAL 300 SECOND)
Avatar billede arne_v Ekspert
04. januar 2007 - 18:03 #7
Avatar billede kernelx Juniormester
04. januar 2007 - 18:09 #8
SELECT testid, testdate FROM testtable WHERE Now() > ADDTIME(testdate,300)  AND testid = 1
virker uden error, men leverer et forkert facit.
den leverer mig et DATO.

som facit vil jeg gerne have

testid  |  testdate
----------------------
1      |  0 eller 1

det jeg gerne vil have SELECT-commandoen til at lave er - at den skal give informationer om testdate+300secs er mindre end tiden nu ... eller om testdate+300secs ikke er mindre end tiden nu. SELECT skal i col 2 ikke levere et dato
Avatar billede kernelx Juniormester
04. januar 2007 - 18:13 #9
stedet for DateAdd bruger MySQL DATE_ADD (som jeg lige kom til at læse på arne_v's link)
Avatar billede kernelx Juniormester
04. januar 2007 - 18:16 #10
ups - blev allerede skrevet om ...
Avatar billede kernelx Juniormester
04. januar 2007 - 18:21 #11
SELECT testid, DATE_ADD( testdate, INTERVAL 300 SECOND ) < NOW( ) FROM testtable
virker
Avatar billede kernelx Juniormester
04. januar 2007 - 18:23 #12
arnve_v husk at skrive et eller andet som svar ... så deler jeg points ... 100 til hver
Avatar billede kernelx Juniormester
04. januar 2007 - 18:25 #13
er der nogen som kan sige mig, hvordan jeg kan sætte alias-navn til overskrifterne, som bliver leveret?

SELECT testid, DATE_ADD( testdate, INTERVAL 300 SECOND ) < NOW( ) AS aliasnavn FROM testtable WHERE testid=1

virker ikke hos mig. jeg troede ind til nu altid, at man kunne lave det med "AS"
Avatar billede arne_v Ekspert
04. januar 2007 - 18:27 #14
proev

SELECT testid, (DATE_ADD( testdate, INTERVAL 300 SECOND ) < NOW( )) AS aliasnavn FROM testtable WHERE testid=1
Avatar billede kernelx Juniormester
04. januar 2007 - 18:29 #15
ah - ok, det virker! tak!
husk at skrive et eller andet som svar
Avatar billede arne_v Ekspert
04. januar 2007 - 20:14 #16
svar
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
Computerworld tilbyder specialiserede kurser i database-management

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