Discussion:
Durchschnitt bei Datentyp datetime
(zu alt für eine Antwort)
Alex Beier
2005-07-14 07:54:58 UTC
Permalink
Hallo,

ich habe eine Tabelle mit mehreren Datensätzen. In einer Spalte wird das
Datum des Eintrags des Datensatzes in die Tabelle abgespeichert. Diese
Spalte hat den Datentyp Datetime.
Mit welcher SQL-Abfrage kann ich das durchschnittliche Alter aller
Datensätze ermitteln?

Schon mal vielen Dank für die Hilfe!
Stefan Lagotzki
2005-07-14 09:05:28 UTC
Permalink
Post by Alex Beier
ich habe eine Tabelle mit mehreren Datensätzen. In einer Spalte wird das
Datum des Eintrags des Datensatzes in die Tabelle abgespeichert. Diese
Spalte hat den Datentyp Datetime.
Mit welcher SQL-Abfrage kann ich das durchschnittliche Alter aller
Datensätze ermitteln?
In welcher Einheit? Einen Ansatz für den Mittelwert in Tagen habe
ich hier getestet:

CREATE TABLE test7(
ID integer AUTO_INCREMENT,
DatensatzDatum datetime,
PRIMARY KEY(ID)
);

INSERT INTO test7 (DatensatzDatum)
VALUES ('2002-07-14 00:00:00'),
('2003-07-14 00:00:00'),
('2004-07-14 00:00:00');

SELECT TO_DAYS(CURDATE())-TO_DAYS(DatensatzDatum)
AS 'Alter in Tagen' FROM test7;

SELECT AVG(TO_DAYS(CURDATE())-TO_DAYS(DatensatzDatum))
AS 'Altersmittelwert' FROM test7;

# HTH, Stefan
Alex Beier
2005-07-14 09:55:36 UTC
Permalink
Hallo Stefan,

danke für deine Antwort. Damit bin ich schon einmal weiter gekommen. Als
Einheit würde ich Sekunden bevorzugen. Ich möchte das durchschnittliche
Alter der Datensätze ausgeben, in dem Format:

Das durchschnittliche Alter der Datensätze ist: z Tage, y Stunden, x Minuten
und w Sekunden.

Muss ich die Angaben für Tage, Stunden und Minuten in php erzeugen, oder
kann ich mir dies bereits von der SQL Abfrage liefern lassen?

Gruß Alex!
Post by Stefan Lagotzki
Post by Alex Beier
ich habe eine Tabelle mit mehreren Datensätzen. In einer Spalte wird das
Datum des Eintrags des Datensatzes in die Tabelle abgespeichert. Diese
Spalte hat den Datentyp Datetime.
Mit welcher SQL-Abfrage kann ich das durchschnittliche Alter aller
Datensätze ermitteln?
In welcher Einheit? Einen Ansatz für den Mittelwert in Tagen habe
CREATE TABLE test7(
ID integer AUTO_INCREMENT,
DatensatzDatum datetime,
PRIMARY KEY(ID)
);
INSERT INTO test7 (DatensatzDatum)
VALUES ('2002-07-14 00:00:00'),
('2003-07-14 00:00:00'),
('2004-07-14 00:00:00');
SELECT TO_DAYS(CURDATE())-TO_DAYS(DatensatzDatum)
AS 'Alter in Tagen' FROM test7;
SELECT AVG(TO_DAYS(CURDATE())-TO_DAYS(DatensatzDatum))
AS 'Altersmittelwert' FROM test7;
# HTH, Stefan
Fabian Schladitz
2005-07-14 09:59:24 UTC
Permalink
Post by Alex Beier
Hallo Stefan,
danke für deine Antwort. Damit bin ich schon einmal weiter gekommen. Als
Einheit würde ich Sekunden bevorzugen. Ich möchte das durchschnittliche
Das durchschnittliche Alter der Datensätze ist: z Tage, y Stunden, x Minuten
und w Sekunden.
Muss ich die Angaben für Tage, Stunden und Minuten in php erzeugen, oder
kann ich mir dies bereits von der SQL Abfrage liefern lassen?
1. http://learn.to/quote

TOFU unerwünscht.

Weiterhin, falls deine MySQL hinreichend jung ist solltest du TIMEDIFF()
verwenden:
TIMEDIFF() was added in MySQL 4.1.1.

Wie du TIMEDIFF anwendest sagt dir das Manual unter:
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html

Und PHP ist nebenan.
--
HTH,
Fabian
Loading...