tas_pats Posted June 28, 2009 Report Share Posted June 28, 2009 Gribētu noskaidrot kā jūs rīkojaties ar datumu apstrādi glabāšanai mysql tabulās. Kā labāk rīkoties konvertēt datumu PHP pusē uz mysql DATE vai DATETIME formātu, vai arī konvertāciju atstāt MYSQL ziņā izmantojot FROM_UNIXTIME funkciju, vai vienkārši glabājat UNIX TIMESTAMP vērtību kā int lauku. Varbūt ir vēl kāda interesanta metode. Kādas būtu katras metodes priekšrocības vai trūkumi? Kā jūsuprāt būtu rīkoties pareizāk ? Quote Link to comment Share on other sites More sharing options...
Wuu Posted June 28, 2009 Report Share Posted June 28, 2009 Pats labākais ir glabāt unix laiku int(10) laukā jeb UNIX_TIMESTAMP() Quote Link to comment Share on other sites More sharing options...
MC_ Posted June 28, 2009 Report Share Posted June 28, 2009 Neglabā datubāzē liekus datus. Ja Tev jāglabā tikai datums, tad glabā tikai datumu DATE (DATETIME ir laika vienībām). Pieredze rāda, ka laba alternatīva ir pieglabāt datumu INT formaataa Ymd => 20090629 - rezultataa iegusti human readable datus ar kuriem vari veikt matematiskas darbibas un kārtošanu.. tas ir lidzigi ka timestamp, taču ietaupi vietu. Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted June 28, 2009 Report Share Posted June 28, 2009 Mana pieredze atkal rāda, ka no int formāta laika nevari viegli iegūt atbildi uz jautājumu "kurā nedēļas dienā ir visvairāk ierakstu, ņemot vērā pēdējā gada datus". Quote Link to comment Share on other sites More sharing options...
Maris-S Posted June 29, 2009 Report Share Posted June 29, 2009 Man jau šķiet ka jāglabā tā kā ir ērtāk konkrētajā situācijā. Es pats personīgi parasti glabāju datuma/laika vienības kā vienu no pieejamiem mysql datu tipiem (atkarīgs no situācijas). Timestampu pa tiešo parasti nesaglabāju, konvertēju to uz unix timestampu selektā, protams ja tas ir nepieciešams, ar mysql funkciju UNIX_TIMESTAMP, vēlāk jau kā vajag var saformatēt ar php funkciju date. Unix timestampu pa tiešo glabāt man ne visai patīk, tad nevar redzēt saprotamu datumu, ja jāskatās datubāzē pa tiešo. Tomēr kā jau teicu jālieto to, kas ir piemērotāks atbilstošai situācijai. Quote Link to comment Share on other sites More sharing options...
laacz Posted June 29, 2009 Report Share Posted June 29, 2009 Datumu iekš MySQL vislabāk ir glabāt laukā DATE, jo a) MySQL to glabā maziņu b) Iekš MySQL ir pieejams lērums funkciju darbībām ar datumiem un to intervāliem Ja glabā datumu UN laiku, tad ir divi varianti: a) DATETIME +) Atbalsta vērtības, kuras ir mazākas par 1970. gada 1. janvāri, un lielākas par 2038. gada 19. janvāri b) TIMESTAMP +) Atbalsta laika zonas +) Glabā datus tā, ka tie aizņem mazāk vietas, nekā DATETIME +) Ir iespēja uzlikt defaulto vērtību "tagas" (DEFAULT CURRENT_TIMESTAMP), kā arī ieraksta izmaiņu gadījumā iespējams automātiski nomainīt lauka vērtību (ON UPDATE CURRENT_TIMESTAMP) +) Ir mazliet ātrāks (iekšēji iekš MySQL) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.