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>;
Ono za vremensku razliku, mislim da je bila već tema i kako su ljudi rešili. Jedno od rešenja koje sam video je da u nekom PHP fajlu definišeš konstantu koja ima vrednost:
Kôd:
"DATE_ADD(NOW(), INTERVAL 6 HOUR)"
i umesto NOW() da koristiš svuda tu konstantu. Ako premeštaš sajt na drugi server, samo promeniš vrednost vremenske razlike tamo gde si definisao tu konstantu.
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.