Az azért gázos ám, hogy módosítottam a kommentek tábláját, ami több, mint hatszáz sort jelent, és ezekre a sorokra új dátumot applikált, méghozzá a mait, pontosabban azon időt, amikor módosítottam. Csak egy kérdés, ez normális dolog? A timestamp mezőnek van egy ilyen szokása, hogy módosításkor felülírja a dátumot?
« MySQL baki? »
Kommentek 
A bejegyzéshez érkezett kommentek, amiket RSS csatornán is követhetsz.
#1
- 2006. június 22., 18:56:08 #
- válasz
A TIMESTAMP mező a legutolsó frissítést tárolja, ezért érdemes DATETIME-ot használni.
Akkor mutatok nektek valamit. Van egy datetime mező, amiben 2006-06-22 19:18:00 formában tárolódik a dátum. Teszem azt, te le akarod kérni az összes mai kommentet. Ez annyiból áll, hogy
SELECT * FROM `akarmi` WHERE DATE_FORMAT(`datummezo_neve`,'%Y%m%d') = 20060622 Ezt ti int típusban nem oldjátok meg. És akkor még nem beszéltem a csodálatos makeDate(); fgvm-ről, ami faszán működik együtt a dátummezőkkel. :)
Tudtommal int esetében nem működik, de nem tudom. Meg az eléggé gusztustalan, hogy 20060505112230, nem?
gusztustalannak gusztustalan, de megoldhato. (elozo kommentembol pontok minusz, mert kozben vmier a textre gondoltam :D)
igen. a timestamp ilyen. ezért tárolom én a timestampjeimet int(20) unsigned formában :D azt nem írja át :P
Ha valakit érdekel, a drupal is int-et hasznal, es timestamp vagyon benne. Gondolom azert, mert konnyen konvertalhato.
Lehet, hogy azért használ integert, mert ennek a típusnak a feldolgozása a leggyorsabb. Tk. egy darab gépszíntű művelet eldönteni, hogy két int egyezik vagy sem.
Ha többször kell lekérdezni az adatokat, főleg, ha sok adatból kell keveset kibányászni, akkor lehet, hogy gyorsabb, ha a kiíratásnál formázza a dátumot, minthogy a mysql előállítja a megfelelő formátumú dátumot, és ez után hasonlítja össze. Mellesleg függvény használatakor a mezőnél nem fogja az indexet használni.
Ellenben az int – unixtimestamp párosításnak hátránya, hogy ránézésre épeszű ember ki nem deríti, hogy milyen dátum szerepel a mezőben.
Ahogy moikboy írta, a Timestamp típusú mező értékét automatikusan minden módosításkor átírja a módosítás dátumára. De csak az első ilyen mezőt. Ha vissza tudod állítani az előző helyzetet – megoldás lehet, hogy ideiglenesen hozzáadsz egy Timestamp mezőt a táblához.
Ha többször kell lekérdezni az adatokat, főleg, ha sok adatból kell keveset kibányászni, akkor lehet, hogy gyorsabb, ha a kiíratásnál formázza a dátumot, minthogy a mysql előállítja a megfelelő formátumú dátumot, és ez után hasonlítja össze. Mellesleg függvény használatakor a mezőnél nem fogja az indexet használni.
Ellenben az int – unixtimestamp párosításnak hátránya, hogy ránézésre épeszű ember ki nem deríti, hogy milyen dátum szerepel a mezőben.
Ahogy moikboy írta, a Timestamp típusú mező értékét automatikusan minden módosításkor átírja a módosítás dátumára. De csak az első ilyen mezőt. Ha vissza tudod állítani az előző helyzetet – megoldás lehet, hogy ideiglenesen hozzáadsz egy Timestamp mezőt a táblához.
Ajánló
Ebben a témában, esetleg ezen a napon voltak még ilyenek is:
Oké, visszavonom amit a Cinema City-ről mondtam (2010. január 18., 08:15:56)
Teknokol (2007. január 18., 03:27:35)
Krugle (2006. június 15., 12:18:11)
Érdekességek
Száraz számok, pusztán csak tények:
Ez a bejegyzés 2156 napja született, 76 szóból, és 332 karakterből áll. Ajánlhatod bizonyos linkgyűjtő oldalaknak:
