Datum?

Leute... wenn ihr mich nicht versteht, lasst es einfach :rolleyes: Ich hab keine Lust, hier alles doppelt und dreifach hinzuschreiben, wenn's dann doch wieder überlesen wird...
 
Re: Datum? Häääää?

Sicaine hat gesagt.:
Wo hab ich nix wichtiges zusagen? Wo flame ich rum?
Tut mir leid, derart dumme Fragen beantworte ich nicht. Aber ich gebe dir einen kleinen Hinweis: Achte auf den Kram um die Frage mit dem Bild in der Datenbank.

@Matthias ganz einfach wenn ich ein Datum in ne db speichere dann auch mit dem richtigen typ. Und der is halt nich int sondern Date oder halt Datetime.
Ja, und wenn man einen Timestamp in der Datenbank speichern will, ist nunmal ein Integer der richtige Datentyp. Nun muss man sich entscheiden, was man will... Wenn man viel ueber das SQL-Statement filtern oder selecten will, ist ein Date(time) sicher nicht die falsche Wahl, wenn man aber vor allem das Datum auslesen will, und damit in PHP wilde Dinge anstellen will (Wochentag rausfinden, Kalenderwoche, etc. pp.) ist ein Timestamp einfach viel komfortabeler. *kopfschuettel* So schwer ist das doch nicht, oder?
 
Würdet ihr bitte die Zeitstempel, welche den vergangenen Sekunden seit dem Beginn der „Unix-Epoche“, auch als solche kenntliche machen, z. B. durch den Begriff „Unix-Zeitstempel“. Denn auch MySQL besitzt einen „Zeitstempel“.


Um mich auch noch in die Diskussion einzumischen: Die MySQL-Funktion DATE_FORMAT() verfügt über ähnliche Spezifikatoren wie die PHP-Funktion date(). Somit ist die Behauptung, dass nur mit PHP solche wilden Dinge anzustellen wären, eher gehaltlos.
Ok, wenn ich ein Datumsformat entsprechend den RFC 2822 oder den ISO 8601-Spezifikationen benötige, ist die date()-Funktion natürlich vorteilhafter.
 
Code:
Specifier 	 Description
%a 	Abbreviated weekday name (Sun..Sat)
%b 	Abbreviated month name (Jan..Dec)
%c 	Month, numeric (0..12)
%D 	Day of the month with English suffix (0th, 1st, 2nd, 3rd, ...)
%d 	Day of the month, numeric (00..31)
%e 	Day of the month, numeric (0..31)
%f 	Microseconds (000000..999999)
%H 	Hour (00..23)
%h 	Hour (01..12)
%I 	Hour (01..12)
%i 	Minutes, numeric (00..59)
%j 	Day of year (001..366)
%k 	Hour (0..23)
%l 	Hour (1..12)
%M 	Month name (January..December)
%m 	Month, numeric (00..12)
%p 	AM or PM
%r 	Time, 12-hour (hh:mm:ss followed by AM or PM)
%S 	Seconds (00..59)
%s 	Seconds (00..59)
%T 	Time, 24-hour (hh:mm:ss)
%U 	Week (00..53), where Sunday is the first day of the week
%u 	Week (00..53), where Monday is the first day of the week
%V 	Week (01..53), where Sunday is the first day of the week; used with %X
%v 	Week (01..53), where Monday is the first day of the week; used with %x
%W 	Weekday name (Sunday..Saturday)
%w 	Day of the week (0=Sunday..6=Saturday)
%X 	Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x 	Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%Y 	Year, numeric, four digits
%y 	Year, numeric, two digits
%% 	A literal `%'.

Öhm ja sicher alles klar...
Wir ignoieren bitte einfach die oben verfügbaren Möglichkeiten mit Mysql ein Datum zu formatieren @Johannes Röttger
 
Zuletzt bearbeitet von einem Moderator:
Dann will ich nochmal ein weiteres Argument in den Raum werfen:
Eine Datenbank soll Daten in strukturierter Form speichern.
Dabei spielt es keine Rolle, mit welcher Programmiersprache oder Anwendungssoftware ich auf diese Daten zugreife.
Ich könnte jetzt nicht mit Sicherheit eine Programmiersprache nennen, mit der man keinen UNIX-Timestamp bearbeiten kann, aber ich bin mir sicher, dass eine gibt.
Außerdem muss es in anderen Sprachen lange nicht so komfortabel sein, damit umzugehen.
Als kleines Beispiel einer Anwendung, die übrigends in PHP geschrieben ist, will ich mal phpMyAdmin nennen, ein sicherlich von vielen PHP-Datenbankprogrammieren genutztes Tool.
Hiermit die Eingaben in einem INT-Feld zu überprüfen dürfte schwierig werden.
Vielleicht fällt einem ja irgendwann mal ein, eine "Offline-Version" zum Zugriff auf die Datenbank zu schreiben, oder man stellt seine Seite irgendwann auf JSP um oder ... oder ... oder...
Aus gutem Grund gibt es bei Anwendungsentwicklung die Trennung in verschiedene Schichten.

Gruß hpvw
 
Re: Datum? Häääää?

Johannes Röttger hat gesagt.:
Ja, und wenn man einen Timestamp in der Datenbank speichern will, ist nunmal ein Integer der richtige Datentyp. Nun muss man sich entscheiden, was man will... Wenn man viel ueber das SQL-Statement filtern oder selecten will, ist ein Date(time) sicher nicht die falsche Wahl, wenn man aber vor allem das Datum auslesen will, und damit in PHP wilde Dinge anstellen will (Wochentag rausfinden, Kalenderwoche, etc. pp.) ist ein Timestamp einfach viel komfortabeler. *kopfschuettel* So schwer ist das doch nicht, oder?

Dir ist schon klar das du dir auch bei DATETIME als Timestamp eingeben und zurückgeben lassen kannst oder?..
Warum ist Integer dann die bessere Methode?!
Integer ist:
1. nicht so komfortabel (z.b. diverse Möglichkeiten beim Filtern die man natürlich aber auch mit "Workarounds" mit PHP und Integer nachstellen kann)
2. nicht dafür gedacht (und entsprechend nicht dafür Optimiert)
3. du hast mit DATETIME alle möglichkeiten die bei Integer möglich sind (und Datumsrelevant sein könnten)

MfG Dominik
 
Ich gebe da Matthias Reitinger vollkommen Recht! Wir war das mit dem Zeitstempel Problem um das Jahr 2ooo ein Theater und kaum was hat nicht getan.

Man sollte das auch in einem INT Feld deffinieren, weil nur so Beispielweise ORDER BY DATUM DESC auch garantiert ist, dass alte Daten in der Richtigen Reihenfolge ausgegeben werden. Mit Varchar gibt es Probleme. TIME ist eigentlich für EXEL etc praktisch aber leider nicht in PHP. PHP rechnet diesen Code sowieso erst in einen Zeitstempel um, zuvor es weiterverarbeitet werden kann, und dann ist es parktischer und schneller das ganze mit einem Zeitstempel einzutragen. Es reicht hier aber auch TIME()

INSERT INTO tabelle (datum) VALUES (time())

Gruss

PS mann kann sich natürlich darüber streiten, aber dabei sollte man nur praktisch denken. Jeder Computer rechnet Zeitstempel. Daten werden öfters ausgelesen wie eingetragen. Natürlich geht das wandeln schnell, aber wer schon grosse Seiten geschrieben hat, der weis das aus 20 mal ein kleiner Pups ein riesen Fruz entsteht :) bekanntlich dauert dies lange und es stinkt dann auch!
 
Zuletzt bearbeitet von einem Moderator:
Lukasz hat gesagt.:
Ich gebe da Matthias Reitinger vollkommen Recht! Wir war das mit dem Zeitstempel Problem um das Jahr 2ooo ein Theater und kaum was hat nicht getan.

Man sollte das auch in einem INT Feld deffinieren, weil nur so Beispielweise ORDER BY DATUM DESC auch garantiert ist, dass alte Daten in der Richtigen Reihenfolge ausgegeben werden. Mit Varchar gibt es Probleme. TIME ist eigentlich für EXEL etc praktisch aber leider nicht in PHP. PHP rechnet diesen Code sowieso erst in einen Zeitstempel um, zuvor es weiterverarbeitet werden kann, und dann ist es parktischer und schneller das ganze mit einem Zeitstempel einzutragen. Es reicht hier aber auch TIME()

INSERT INTO tabelle (datum) VALUES (time())

Gruss

PS mann kann sich natürlich darüber streiten, aber dabei sollte man nur praktisch denken. Jeder Computer rechnet Zeitstempel. Daten werden öfters ausgelesen wie eingetragen. Natürlich geht das wandeln schnell, aber wer schon grosse Seiten geschrieben hat, der weis das aus 20 mal ein kleiner Pups ein riesen Fruz entsteht :) bekanntlich dauert dies lange und es stinkt dann auch!

Den ersten Satz verstehe ich nicht wirklich. Aber ich geh mal davona us, dass du irgendwas mit dem Jahr 2000 Problem meinst? Dir ist klar wie Datetime das Datum speichert? Da gibt es keine Probleme.

VarChar hat wohl überhaupt garnichts mit nem Timestamp zu tun.

Order By funktioniert hier genauso gut wie mit nem Timestamp in nem Intfeld.

Ansonsten: schön ich gebs 20 mal aus aber ich gebe es Formatiert aus! Es wäre was anders wenn ich es 20 mal zum rechnen benötigen würde. Und wer große Seiten schreibt, lernt es zu scähtzen es schnell mit DATE_FORMAt zu formatieren um es dann schnell und problemlos auszugeben.
der weis das aus 20 mal ein kleiner Pups ein riesen Fruz entsteht :)
 
Siehst du da ist schon das Problem (du gibst es formaiter aus) und dies soll ich glauben?

Geschrieben am 2004-11-28 von ... echt?

Bei mir sieht das so aus
http://www.2ts2.net/index.php?&get=forum/showpost.php&thisthread_id=514&seite=10000000

Sorry ich will dich nicht angreifen man kann die Reihenfole auch drehen. Aber verate mir mal dann wie schnell du Daten von gestern zwischen 14-15 Uhr auslesen kannst, und das ganze auch noch vorwärst geordnet. Genau das meinte ich. Erst sollt man überlegen.
Poste jetzt aber nich ein SQL Befehl, denn dieser formatiert ja schon!

Grüsse!

PS du formatierst ja auch 2 mal MYSQL bei der Eingabe von mir aus automatisch und dann mit SQL bei der Ausgabe. Macht keinen Sinn, ausser du willst das auch in EXEL ó.ä. bearbeiten.

Möchtest du einen Text auf deutsch ausgeben wie "Am 20 November" so formatierst du das dritte mal wo ich das erste mal ansetze!

Und noch ein Dritter Grund: Wenn einer aus Amerika postet hast du den deutschen Zeitstempel, oder denn den der Server hat. Mit einem Binären kannst du praktisch auf die Amerkianische Zeit umrechnen. Wieder ein Nachteil was MYSQL mit sich bringt!
 
Zuletzt bearbeitet von einem Moderator:
Öhm ja echt?

WHERE datum > '2004-11-28 14:00:00' AND datum < '2004-11-28 15:00:00'

Öhm ja so würd ich das machen. Nebenbei is das auch noch schöner als ein Timestamp
 
Zurück