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?
Tetszett a bejegyzés?
Megköszönöm, ha nyomsz rá egy like-ot vagy megosztod másokkal:
moikboy
2006. június 22. — 18:56:08
A TIMESTAMP mező a legutolsó frissítést tárolja, ezért érdemes DATETIME-ot használni.
Vale
2006. június 22. — 19:03:47
ezért használok inkább int() mezőt…
eF`k3_
2006. június 22. — 19:15:03
en is int parti vagyok
Ámon Tamás
2006. június 22. — 20:03:07
vagy:
SELECT * FROM `akarmi` WHERE DATE_FORMAT(`datummezo_neve`,'%Y%m%d') = CURDATE() + 0
Shamalt
2006. június 22. — 20:35:22
nalam is datetime van, de merne oldanam meg akar inttel?
where datummezo_neve like ‘Y.m.d.%’
Shamalt
2006. június 22. — 21:28:08
gusztustalannak gusztustalan, de megoldhato. (elozo kommentembol pontok minusz, mert kozben vmier a textre gondoltam :D)
Devilll
2006. június 22. — 23:16:46
igen. a timestamp ilyen. ezért tárolom én a timestampjeimet int(20) unsigned formában 😀 azt nem írja át 😛
Haszprus
2006. június 23. — 05:22:17
ha van külön datetime mező akkor minek használtok intet?
Ámon Tamás
2006. június 23. — 07:12:47
Ha valakit érdekel, a drupal is int-et hasznal, es timestamp vagyon benne. Gondolom azert, mert konnyen konvertalhato.
balti
2006. június 23. — 08:41:27
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 [b]moikboy[/b] í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.
balti
2006. június 23. — 08:42:45
Na, ez megint egy kisregény lett.
Mefi
2006. július 22. — 12:27:48
Sejtettem, hogy ez lehet a probléma, no sebaj.
Mefi
2006. július 22. — 12:27:48
Egy darabig én is így voltam, aztán rájöttem, mit tud a DATE_FORMAT, vagy pl. az EASTER funkció.
Mefi
2006. július 22. — 12:27:48
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. 🙂Mefi
2006. július 22. — 12:27:48
Tudtommal int esetében nem működik, de nem tudom. Meg az eléggé gusztustalan, hogy 20060505112230, nem?
Mefi
2006. július 22. — 12:27:48
Semmi gond. 😀
Mefi
2006. július 22. — 12:27:48
Semmi gond. 🙂