Mailinglisten-Archive |
Steffen Siegel wrote: > > Hallo, > Ich arbeite mit mysql 3.21.30 und habe verschiedene Tabellen mit > jeweils einem Feld der Typen date und time. > Jetzt das Problem: Die Zeiten der Tabellen sind alle unterschiedlich > und ohne konstante Abstaende. Trotzdem muss ich einen Join der > Tabellen ueber die Zeit hinbekommen. D.h. ein join a la > where tab1.zeit = tab2 and tab1.datum = tab2.datumergaebe kein Ergebnis. > Also braeuchte ich etwas der Art (ich habe datum und zeit in sec seit > 1.1.1970 0.00Uhr im Feld numzeit abgelegt[geht das besser?]) : > where tab1.numzeit between tab2.numzeit - x and tab2.numzeit + x > Allerdings werden da einer Zeile aus tab1 meherer Zeilen aus > tab2 zugeordnet (es sind ausserdem meist mehr als 2 Tabellen zu joinen) > > Weiss jemand einen Rat? > Danke und Tschues Steffen Hallo Steffen Mit 3.21.30 solltest Du Zeitangaben (DATE und TIME) am besten in eine Zahl umwandeln, und dann einfach mit <, >, <=, >= vergleichen. Das Umwandeln hast Du offensichtlich schon geschafft. Allerdings haettest Du auch UNIX_TIMESTAMP(...) oder '+ 0' verwenden koennen, statt gleich eigene Spalten zu erzeugen. Aus: WHERE tab1.numzeit BETWEEN tab2.numzeit - x AND tab2.numzeit + x wird also: WHERE tab1.numzeit >= tab2.numzeit - x AND tab1.numzeit < tab2.numzeit + x Tschau Christian
php::bar PHP Wiki - Listenarchive