mySQL: wann wird int zu klein für Timestamp ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bit
code
datum
folgen
format
gedanke
http
jahr
machen
maximum
rang
sekunde
server
setzen
speichern
typ
url
vorschlag
vorzeichen
zeichen
-
Hallo
Der (Unix) Timestamp zählt ja die Sekunden seit 01.01.1970
zur Zeit ist er 10 Zeichen lang, z.B:1353753033
daher kann man den (noch) in MySQL Speichern mitint (10) UNSIGNED
Aber ab welchen Datum wird der (Unix) Timestamp zu "groß" für int ???
und sollte man jetzt schon Speichern von Timestamp in MySQL mit bigint() machen ?
Laut MySQL Doku: int() UNSIGNED max = 4294967295
.. ist das der Wert bei 32bit oder bei 64bit Server ?
Bei der Doku: http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html steht keine Hinweis dazu ?!
ab wann (welches Datum) ist int() UNSIGNED zu "klein" für einen (Unix) Timestamp ? (bei 64 bit)
und sollte man den lieber gleich als bigint() Speichern? .. wieviele max. Stellen hat bigint() UNSIGNED ?
PS: wenn der Server (http) auf 64 bit läuft, ist dann MySQL automatich auch 64bit ?
bzw. wie bekomme ich heraus, ob der MySQL Server auf 64bit läuft ?
und .... wie kann ich in PHP (nicht in MySQL) eine (int)$variable auf UNSIGNED setzen ?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
juwely schrieb:
Hallo
Der (Unix) Timestamp zählt ja die Sekunden seit 01.01.1970
zur Zeit ist er 10 Zeichen lang, z.B:1 353 753 033
daher kann man den (noch) in MySQL Speichern mitint (10) UNSIGNED
Aber ab welchen Datum wird der (Unix) Timestamp zu "groß" für int ???
und sollte man jetzt schon Speichern von Timestamp in MySQL mit bigint() machen ?
Wenn Du nicht dem Vorschlag von hackyourlife folgen magst, solltest Du dir, wenn ich mich nicht verrechnet habe, in ca.275(Natürlich hab ich mich verrechnet. ) 94 Jahren Gedanken machen.
Beitrag zuletzt geändert: 24.11.2012 13:02:21 von fatfreddy -
Ich bilde mir ein, dass ich irgendwo gelesen hab, dass sich der Typ timestamp automatisch anpassen wird. Ansonsten... INT(11) :D
-
ok, Datum als INT (timestamp) zu speichernt macht wenig Sinn, das sehe ich ein,
u.a. weil ... wenn man Geburtsdatum Speichern will, braucht man ja auch vor 1970
fatfreddy schrieb:
Wenn Du nicht dem Vorschlag von hackyourlife folgen magst, solltest Du dir, wenn ich mich nicht verrechnet habe, in ca.275(Natürlich hab ich mich verrechnet. ) 94 Jahren Gedanken machen.
hmmm .. ich habe was gefunden .... Timstamp passit in int bis: UTC 2038-01-19 (03:14:07)
also wie kommst Du auf 94 Jahre ... sind eher noch 25 Jahre und ein paar Zerquetschte :)
ahhh ... ok ... kapiert .... gemeint ist dabei wahrscheinlich int mit Vorzeichen,
... bei int UNSIGNED ist es dann bis: 2106-02-07 (01:28:15) ... daher die 94
zum Datentyp TIMESTAMP
... TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.
... also auch "nur" bis 2038
das bringt also gegenüber int nicht mehr, gegenüber int UNSIGED sogar weniger
aber mit Datentyp DATETIME
... DATETIME ... range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59' UTC
... schon besser, auch vor 1970 und bis zum Jahr 9999
sehe ich das richtig, Datentyp TIMESTAMP (und DATETIME)
wird wie ein Datum-String gespeichert ? ... im Format:YYYY-MM-DD HH:MM:SS
... quasi wie ein VARCHAR (19), nur dass es "anders" ausgelesen werden kann
oder ist TIMESTAMP anders als DATETIME ... in der Doku sieht beides gleich aus
also wenn Datentyp DATETIME (oder TIMESTAMP) ist, dann geht sowas:
SELECT * FROM table where datum1 BETWEEN '2012-10-01 00-00-00' AND '2012-11-24 23:59:59'
was mit VARCHAR nicht gehen würde ?
und ... Frage zum Verständnis zu int in PHP und MySQL
bei Server 64 bit System ist PHP_INT_MAX = 9223372036854775807
aber in MySQL ist Maximum von int (SIGNED) = 2147483647 .. bzw: int (UNSIGED) = 4294967295
also ist int in MySQL immer "nur" 32bit int .... und bigint dann das 64bit int ???
... gibt es bei MySQL keinen Unterschied ob auf 32bit oder 64 bit Server ?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage