Wertebereich 'time'

Hallo!
Ich bin noch ziemlich frisch auf dem Gebiet der SQL-Datenbanksprache.
Momentan versuche ich, eine Datenbank für Audiodateien anzulegen.

Meine Relation beinhaltet später den Namen der Audiodatei, die Länge und das Erscheinungsjahr. Allerdings bin ich mir nicht sicher, was man eingeben muss, um in „Länge“ später Zahlen wie „21:07:18“ einzugeben.

Momentan würde ich es so kreieren:

CREATE TABLE Podcast (
PNR int primary key,
Name varchar (50),
Länge time,
Erschienen int (4) );

was muss hinter „time“ noch stehen? Bzw. ist „time“ überhaupt der richtige Wertebereich dafür? Ich kann es leider nicht praktisch ausprobieren. Und Verzeihung, dass ich mein Problem nur schwammig erklären kann, da ich mit den Fachbegriffen noch nicht so vertraut bin.

Moin, S.anna,

hier handelt es sich nicht um eine Zeit, sondern um eine Dauer, deshalb wird ein _time> nicht viel helfen.

Mach eine Zahl daraus und leg die Dauer in Sekunden ab, dann kannst Du sie für die Ausgabe aufbereiten, wie sie benötigt wird.

Als Erscheinungsdatum empfiehlt sich ein date, vielleicht kommt der Kunde ja irgendwann auf die Idee, dass er den Monat auch noch braucht.

Gruß Ralf_

achso, time ist also nur für Datum usw. gedacht? Ok. Gut, ich leg die Zahl in Sekunden ab, ist wirklich am einfachsten!
Und das mit dem Erscheinungsdatum ist auch eine gute Idee. Vielen Dank! :smile:

interne Darstellung von ‚time‘
Moin, S.anna,

achso, time ist also nur für Datum usw. gedacht?

so ist es. Zeit und Datum werden in der Datenbank als (Milli-, Mikro-)Sekunden-Differenz zu einem Fixdatum abgelegt, das als Bezugspunkt gilt. Je nach DBMS kann das der 1.1.1984 sein oder der 1.Januar des Jahres, seit dem der Gregorianische Kalender gilt oder sonstwas wie der Hochzeitstag des Firmengründers. Ist aber alles wurscht, solange das DBMS diese Ganzzahl in einen Datumsstring übersetzt, den der Mensch versteht.

Gruß Ralf