im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 23.02.2006 19:57:10 von j_wenke

Hi ng,

ich komme nicht drauf:
wie kann ich von einer selektierten Zeit
eine Stunde zu- und eine abziehen
(um sozusagen einen Abfragezeitspanne zu schaffen)?

ich habs momentan so (! mit 2. Vers.)

if ($vwf = mysql_fetch_array($result)) {
$qkar = "SELECT compi, zeit, concat(datum,' ',zeit) AS dd,
date_add(dd, intervall '-1 10' day_hour) as a_dd, <==
dd - intervall 1 hour as s_dd <==
FROM nwvcount
WHERE ".$vwf[2]." ". $vwf[4]." BETWEEN s_dd AND a_dd";

$res2 = mysql_query($qkar)or die($qkar.'
color=\"#FF0000\">=>: '.mysql_error()); // = Treffer & ggf.
Fehlermeldung
$kar2 = mysql_fetch_assoc($res2);
echo "--> ".$kar2[2]."
";
} else { echo "nix da
"; }

aber es ergibt - sicher berechtigt ;-) - immer

SELECT compi, zeit, concat(datum,' ',zeit) AS dd, date_add(zeit,
intervall '-1 10' day_hour) as a_dd, dd - intervall '0:1:0' day_hour as
s_dd FROM nwvcount WHERE 2005-12-31 23:03:46 BETWEEN s_dd AND a_dd
=>: Fehler in der Syntax bei 'intervall '-1 10' day_hour) as a_dd, dd -
inter' in Zeile 2.

schon div. probiert.
mysql 3.23.29
Danke für Hilfe und Tipps,
Jörg

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 23.02.2006 20:05:37 von Dirk Brosowski

j_wenke schrieb:
> Hi ng,
>
> ich komme nicht drauf:
> wie kann ich von einer selektierten Zeit
> eine Stunde zu- und eine abziehen
> (um sozusagen einen Abfragezeitspanne zu schaffen)?
>
> ich habs momentan so (! mit 2. Vers.)
>
> if ($vwf = mysql_fetch_array($result)) {
> $qkar = "SELECT compi, zeit, concat(datum,' ',zeit) AS dd,
> date_add(dd, intervall '-1 10' day_hour) as a_dd, <==
> dd - intervall 1 hour as s_dd <==
> FROM nwvcount
> WHERE ".$vwf[2]." ". $vwf[4]." BETWEEN s_dd AND a_dd";
> $res2 = mysql_query($qkar)or die($qkar.'
> color=\"#FF0000\">=>: '.mysql_error()); // = Treffer & ggf.
> Fehlermeldung
> $kar2 = mysql_fetch_assoc($res2);
> echo "--> ".$kar2[2]."
";
> } else { echo "nix da
"; }
>
> aber es ergibt - sicher berechtigt ;-) - immer
>
> SELECT compi, zeit, concat(datum,' ',zeit) AS dd, date_add(zeit,
> intervall '-1 10' day_hour) as a_dd, dd - intervall '0:1:0' day_hour as
> s_dd FROM nwvcount WHERE 2005-12-31 23:03:46 BETWEEN s_dd AND a_dd
> =>: Fehler in der Syntax bei 'intervall '-1 10' day_hour) as a_dd, dd -
> inter' in Zeile 2.
>
> schon div. probiert.
> mysql 3.23.29
> Danke für Hilfe und Tipps,
> Jörg


Wo ist denn dein Problem? Kannst du die MySQL-Doku nicht finden? Kannst
du die Fehlermeldung nicht interpretieren? Was hast du "probiert" /
"geraten"?

Als Tipp werfe ich mal in den Raum "intervall" ist keine MySQL-Funktion
und Parameter muss man in () übergeben, selbst wenn das eine
MySQL-Funktion wäre.

Und bitte in Zukunft diesen PHP-Kram nicht posten, sowas lesen sich
hier nur sehr wenige durch, dafür gibt es erstaunlicherweise extra-NG's.

Have Fun

Dirk

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 23.02.2006 20:08:41 von Sven Paulus

j_wenke wrote:
> ich habs momentan so (! mit 2. Vers.)

Zaehl mal die 'L's.

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 24.02.2006 00:33:19 von j_wenke

Hi Sven ,
>...
> Zaehl mal die 'L's.
:-) Danke,

sorry - habe den code vor lauter clammern nicht mehr gesehen ?-|

trotz allem - es ist zum Mäuse melken +*##?ß**!!&%:


$qkar = "SELECT '".$vwf[3]."', concat('".$vwf[2]."',' ','".$vwf[4]."')
AS ddd, date_add(ddd, interval '1:00' day_hour) AS a_dd, date_sub(ddd,
interval '1:00' day_hour) AS s_dd
FROM nwvcount
WHERE '".$vwf[2]." ". $vwf[4]."' BETWEEN a_dd AND s_dd";
echo "

"; var_dump($vwf); echo "
";

aus irgendeinem Grund gibts:
=>: Unbekanntes Tabellenfeld 'ddd' in field list.

in der query setzt er es eigentlich zusammen - Werte sind also in den Var.:
SELECT '217.253.75.234', concat('2005-12-31',' ','23:03:46') AS ddd,
date_add(ddd, interval '1:00' day_hour) AS a_dd, date_sub(ddd, interval
'1:00' day_hour) AS s_dd FROM nwvcount WHERE '2005-12-31 23:03:46'
BETWEEN a_dd AND s_dd


mit CONCAT_WS hatte es auch nicht geklappt.

das var_dump($vwf) ergibt eigenartigerweise doppeltes array-ergebnis,
jew. eins unter [0] ... und eins unter [name1] ...


habt ihr noch Tipps weshalb das feld ddd nicht existiert???

Danke schonmal,
Jörg

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 24.02.2006 07:33:52 von Joachim Zobel

On Fri, 24 Feb 2006 00:33:19 +0100, j_wenke wrote:

> $qkar = "SELECT '".$vwf[3]."', concat('".$vwf[2]."',' ','".$vwf[4]."') AS
> ddd, date_add(ddd, interval '1:00' day_hour) AS a_dd, date_sub(ddd,
> interval '1:00' day_hour) AS s_dd
> FROM nwvcount
> WHERE '".$vwf[2]." ". $vwf[4]."' BETWEEN a_dd AND s_dd"; echo
> "

"; var_dump($vwf); echo "
";
>
> aus irgendeinem Grund gibts:
> =>: Unbekanntes Tabellenfeld 'ddd' in field list.

Trotz des ekelhaften PHP-gegurkes, das Du offenbar nicht lassen kannst:

ddd nist ein Alias, das kannst Du nicht eine Zeile weiter wie eine Spalte
verwenden.

Gruß,
Joachim

--
Warnung: \" kann Augenkrebs verursachen.

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 24.02.2006 13:09:13 von j_wenke

Hallo Joachim,
Danke,
> ...
> Trotz des ekelhaften PHP-gegurkes, das Du offenbar nicht lassen kannst:
ich versuche´s.
kuck mir in ng´s gern mal sowas an
> ddd nist ein Alias, das kannst Du nicht eine Zeile weiter wie eine Spalte
> verwenden.
gibts bzgl. meiner "Zeitspannensuche" nicht scon was +/- "vollendeten" Code?
Grüße, Jörg

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 24.02.2006 13:44:11 von Dirk Brosowski

j_wenke schrieb:
> Hallo Joachim,
> Danke,
>
>> ...
>> Trotz des ekelhaften PHP-gegurkes, das Du offenbar nicht lassen kannst:
>
> ich versuche´s.
> kuck mir in ng´s gern mal sowas an
>
>> ddd nist ein Alias, das kannst Du nicht eine Zeile weiter wie eine Spalte
>> verwenden.
>
> gibts bzgl. meiner "Zeitspannensuche" nicht scon was +/- "vollendeten"
> Code?

Warum schaust du nicht einfach in die MySQL-Doku? Dort gíbt es
Date/Time-Funktionen ..... etwas Eigeninitiative ...

Grüße

Dirk

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 24.02.2006 18:55:49 von Joachim Zobel

On Fri, 24 Feb 2006 13:09:13 +0100, j_wenke wrote:

> gibts bzgl. meiner "Zeitspannensuche" nicht scon was +/- "vollendeten"
> Code?

Entweder Du kannst Dein Problem schlecht formulieren oder

http://www.google.com/search?q=date_add+hour

ists.

Gruß,
Joachim

--
Warnung: \" kann Augenkrebs verursachen.

Re: im select zur Zeit +1 h / -1h rechnen (Zeitspanne)

am 06.03.2006 02:09:20 von j_wenke

Hi,
Danke für Tipps, bin heute aber nicht weitergekommen
(mußte letzte Wo. mal aussetzen ...).

Es geht ja um eine Tab, aus der anhand einer Zeitspanne
(z.B. 2 Stunden) Datensätze rausgezogen werden sollen,
die den selben Namen haben können, einmalig oder aber
zu unterschiedlichen Zeiten auftreten - innerhalb
oder außerhalb einer Zeitspanne. In letzterem Fall
sollen sie dann doppelt gezählt werden.
Ergebnis z.B.: 13 Aufrufe, 3 Besuche, 2 Leute

Das
date_sub(concat_WS(' ','".$vwf[1]."','".$vwf[2]."'), interval 1 hour) ...
funktioniert technisch und
WHERE ... BETWEEN ...
ebenso.
kann die Treffer bisher aber nicht korrekt eingrenzen -
und finde im Netz eigenartiger Weise nichts explizit dazu.

Wie würdet ihr das angehen, mit IF( ... oder CASE ... oder einem JOIN ?

Gruß,
Jörg