|
Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum. |
|
Alati teme | Način prikaza |
15. 12. 2007. | #1 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
datum i mysql (datetime, date, timestamp)
nisam nasao ovakvu temu....
sta koristiti za unos datuma u mysql ? date, datetime i timestamp ? do sada sam koristio samo timestamp a def vrednost je bila CURRENT_TIMESTAMP. sada sam probao da stavim datetime i def vrednost now() ali dobijam u bazi sve nule... posto pravim nesto novo mislio sam da ne koristim vise timestamp vec datetime. da li da koristim datetime ili date ? i kako def vrednost da mi upisuje sam ? i jos jedan problem, zelim vreme po srednjeevropskom a ne po tamo americkom gde je server... ima li neki auto konvertor (tipa now() + 6h ili da se pravi neka srkipta ? |
15. 12. 2007. | #2 |
profesionalac
Professional
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
|
Ne možeš da postaviš default now vrednost za date i datetime, ali te ništa ne sprečava da pri unosu ili apdejtu nekog rekorda staviš u upitu da mu vrednost bude NOW().
Kôd:
INSERT INTO <tabela> SET ime = 'Pera', datum_registracije = NOW(); Kôd:
UPDATE <tabela> SET ime = 'Pera', datum_izmene = NOW() WHERE id = <neki id>; Kôd:
"DATE_ADD(NOW(), INTERVAL 6 HOUR)" Edit: Ako te ti treba i datum i vreme, onda koristi datetime, a ako je neki podatak tipa datum rođenja (gde vreme ne igra ulogu osim za podznak u horoskopu), dovoljan ti je date. Poslednja izmena od BluesRocker : 15. 12. 2007. u 17:40. |
15. 12. 2007. | #3 |
Goran Pilipović
Sir Write-a-Lot
|
Kada timestamp definises kao DEFAULT CURRENT_TIMESTAMP [ON UPDATE CURRENT_TIMESTAMP] onda ga on ionako zapisuje u DATETIME formatu.
Generalno male su razlike, i svi ti DATE... formati se zapisuju krajnje optimizovano (ne piše se string "2007-12-15 18:09.473" već integer) tako da je skoro nevažno šta koristiš, sve dok nije VARCHAR (i to je nekima padalo na pamet, viđao sam )
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
15. 12. 2007. | #4 |
Ivan Dilber
Sir Write-a-Lot
|
jedine razlika izmedju timestamp i datetime su sto se prvi timestamp u tabeli automatski updatejtuje kod svake promene podataka, i sto datetime ima nesto veci opseg legalnih datuma (sto je uglavnom nebitno).Date i datetime su ista stvar samo se kod date zanemari deo koji belezi sate i minute
za dobijane lokalnog vremena najednostavnje je da negde definises konstantu koja predstavlja razliku u vremenskim zonama i da onda rucno dodas tu konstantu gde treba.
__________________
Leadership is the art of getting people to want to do what you know must be done. |
16. 12. 2007. | #5 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
ok tnx puno.
ako sam dobro skapirao pri upitu insert into i za datum bi koristio now() i dobijao bih vrednost koja se razlikuje od ove trenutne (sve nule) ? e sad ova konstanta mi nije bas najjasnija... (nisam to nikad radio). moze li neko da mi da parcence samo tog koda. dakle insert into tebela (nesto, datum) values ('nesto', 'sta ovde da stavim???'); ako stavljam $datum onda kako sam definisao negde gore taj datum ? $datum = now() + nesto mislim da nece da ide jer je to php... mogu li nesto ovako $sestsati = time() + (6 * 60 *60); $datum = date('d.m.y', $sestsati); |
16. 12. 2007. | #6 | |
novi član
Na probnom radu
Datum učlanjenja: 31.07.2007
Poruke: 23
Hvala: 0
7 "Hvala" u 5 poruka
|
Citat:
ako koristis DATETIME stavis: insert into tebela (nesto, datum) values ('nesto', now() ); ako koristis TIMESTAMP stavis insert into tebela (nesto, datum) values ('nesto', CURRENT_TIMESTAMP ); kod ovog drugog mozes da stavis CURRENT_TIMESTAMP kao default value pa onda mozes malo da skratis: insert into tebela (nesto) values ('nesto'); takodje u ovom drugom slucaju mozes i da postavis Attribute na ON UPDATE CURRENT_TIMESTAMP pa ce se datum menjati automatski kada apdejtujes bilo sta u slogu. Sto se tice ovoga sto si ti predlozio - nemoj da mesas datum iz php koda sa datumom iz mysql baze. Cesto se dogadja da je mysql na jednoj a php na drugoj masini. U tom slucaju ako casovnik nije sinhronizovan (a najcesce nije) mozes vrlo neprijatno da se iznenadis kada kod pocne da brljavi. |
|
16. 12. 2007. | #7 |
profesionalac
Professional
Datum učlanjenja: 21.06.2005
Poruke: 294
Hvala: 93
525 "Hvala" u 19 poruka
|
PHP kôd:
|
16. 12. 2007. | #8 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
@filjo
ma to sam znao, ali u svakom slucaju tnx @BluesRocker to je to sto mi je trebalo tnx i tnx svima |
16. 12. 2007. | #9 |
Goran Pilipović
Sir Write-a-Lot
|
Pa nije bas dobra ideja da cuvas tako u bazi, bolje da cuvas onda po GMT pa konvertujes u timezone pri ispisu. Sta ces kada recimo prebacis sajt na drugi server koji je u drugoj zoni?
A ko hoces vec tako, bolje koristi onda: PHP kôd:
Ali najbolje je da pises sve u recimo GMT, a da u tvom script radis output tako sto dodajes vremensku zone, ali onda moras da znas i u kojoj zoni je tvoj korisnik. Ako je server u americi, recimo GMT-6, i ti dodajes 6 sati na to vreme, onome ko je u grckoj to vreme ce biti drugacije nego u Beogradu.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
16. 12. 2007. | #10 |
NoProfessional
Certified
Datum učlanjenja: 29.09.2007
Lokacija: sta te bole
Poruke: 88
Hvala: 1
1 "Hvala" u 1 poruci
|
ma nije mi toliko bitno konkretno vreme... datum je manje vise meni potreban a ne toliko korisniku.... (nisam siguran da li ce korisnik imati mogucnost da vidi datum...)
a ako predjem na drugi server samo promenim sa 6 sati na koliko vec treba... trebam da promenim samo jedan red koda i to da zamenim cifru... mislim mozda bih nesto i menjao ako ima lakse/bolje, ali dosta sam slab u php-u sa tim datumima zonama i ostalim cudesima... sta bi trebao da unesem pa da mi uvek ubacuje GTM vreme ? onda bi pri ispisu trebao uvek da dodajem 1 sat na to vreme za tacno vreme po srednjeevropskom vremenu (koje meni treba) bez obzira gde se host nalazi ? jesam li upravu za ovo ? |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Array: from date to date | Ivan | PHP | 3 | 07. 08. 2007. 05:20 |
Page title i datum | Marko88 | PHP | 28 | 07. 03. 2007. 14:42 |
date klasa v0.0.4 | oliver78 | PHP | 14 | 01. 02. 2006. 03:26 |
Promena prikaza TIMESTAMP polja u MySQL | bluesman | SQL baze podataka - Sponzor: Baze-Podataka.net | 9 | 31. 01. 2006. 20:13 |
date() to time() | mega023 | PHP | 3 | 01. 12. 2005. 23:24 |