Toon posts:

[MySQL] Error bij samenvoegen 2x UNIX_TIMESTAMP

Pagina: 1
Acties:

Verwijderd

Topicstarter
na uurtjes zoeken en proberen geen antwoord gevonden...
Iemand een idee wat hier mis mee kan zijn?

bij voorbaad dank

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
result="$(db_query "
select
  *
from
  tblTodos
where
  UNIX_TIMESTAMP( todTimestamp ) >= UNIX_TIMESTAMP( '${begindatum}' ) and
  UNIX_TIMESTAMP( todTimestamp ) <= 
  (
    UNIX_TIMESTAMP ( '${einddatum}' ) +
    UNIX_TIMESTAMP ( '0000-00-01 00:00:00' ) 
  ) and
  todUsername = '${1}'"

)"

echo "${result}"

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Misschien eens de query echo'en zodat je kan zien of de variabelen gevuld zijn met de data die je wilt.

offtopic:
Welke scripttaal is dit? Ziet er wazig uit...

Verwijderd

Topicstarter
't is in bash
code:
1
2
3
4
select * from tblTodos where UNIX_TIMESTAMP( todTimestamp ) >= UNIX_TIMESTAMP( '
2003-10-13 00:00:00' ) and UNIX_TIMESTAMP( todTimestamp ) <= UNIX_TIMESTAMP ( '2
003-10-13 00:00:00' ) + UNIX_TIMESTAMP ( '0000-00-01' ) ) and todUsername = 'Roe
l'

Verwijderd

SELECT UNIX_TIMESTAMP ( '0000-00-01' );
Ja die bestaat dus niet. Unix timestamps beginnen bij 1970-01-01.

[ Voor 9% gewijzigd door Verwijderd op 13-10-2003 22:40 ]


Verwijderd

Topicstarter
Na vervangen van ('0000-00-01') door ('1970-01-02') blijft de foutmelding...
Misschien een andere manier om één dag bij een datum op te tellen?

Verwijderd

Een dag is 86400 seconden. De timestamp van nu + 86400 is morgen deze tijd.

  • slm
  • Registratie: Januari 2003
  • Laatst online: 25-06 12:45

slm

begrijp even niet waarom je nou met die unix timestamp functie zit te werken. Je kan ook zonder die functie data vergelijken.

Waarom gebruik je niet gewoon date_add() / date_sub() om iets bij een datum op te tellen?

To study and not think is a waste. To think and not study is dangerous.


Verwijderd

Topicstarter
Op de een of andere manier werkt 't niet... De rest v/d query zou gewoon moeten werken, toch?

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 18-08 14:38
Leg eerst eens even de betekenis van je query uit!

Verwijderd

Topicstarter
de query moet vergelijken of de timestamp todTimestamp tussen de begindatum en einddatum vallen

Verwijderd

Topicstarter
Ok, doet eindelijk... Heb de query na een date_add() poging maar helemaal omgegooid...

Bedankt voor 't meedenken iig.
code:
1
2
3
4
select * from tblTodos where 
(todTimestamp >= '${begindatum}') and 
(todTimestamp < '${einddatum}' + INTERVAL 1 DAY) and 
(todUsername = '${1}')
Pagina: 1