SORU
13 EKİM 2010, ÇARŞAMBA


'DateTime, zaman Damgası, Zaman ve Tarih arasındaki fark ne Raylar üzerinde Ruby,?

Benim durumumda, tarihler doğru programlama her zaman tehlike ve difficulity dolu zamanlar/.

Ruby ve Rails seçenekleri ezici sayıda nedeniyle sadece her zaman bu konuda bana atlatmıştı var; ben asla seçmem gereken hiçbir fikrim yok.

Raylar kullanarak ve ActiveRecord veri baktığımda aşağıdaki bulabilirim

:datetime :zaman damgası :zaman ve Tarih

ve farklılıklar nelerdir veya sorunlar pusuda hiçbir fikrim yok.

Ne fark eder? Onları senin için ne kullanıyorsunuz?

(Rails3 kullanıyorum P. S.)

CEVAP
14 EKİM 2010, PERŞEMBE


ActiveRecord farklı tarih/saat biçimleri arasındaki fark Raylar ve kullandığınız her türlü ile yapmak her şey ile ilgisi var.

Kullanarak MySQL olarak bir örnek (eğer başka bir nedenle en popüler), DATE, DATETIME, TIME TIMESTAMP sütun veri türleri; tıpkı senin olduğu gibi CHAR, VARCHAR, FLOAT ve INTEGER.

Sorarım size, o yüzden ne fark eder? Bazıları kendiliğinden gelir. DATE sadece bir tarih, TIME DATETIME depolar ise sadece günlük bir süre saklar, saklar.

DATETIME TIMESTAMP biraz daha ince arasındaki fark: DATETIME YYYY-MM-DD HH:MM:SS biçimlendirilmiş. Geçerli Aralık 9999 yılı yıl 1000 (ve arasındaki her şeyi. TIMESTAMP süregörünüyorbenzer veritabanından almaya geldiğinde, gerçekten unix timestamp için sadece bir paravan. Geçerli aralığın 2038 1970 gider. Fark burada, çeşitli dahili veritabanı motoru işlevlerini bir kenara bırakırsak, depolama alanı. DATETIME depolar yılda her basamak, ay, gün, saat, dakika ve saniye için 8 bayt toplam kullanır. TIMESTAMP sadece mağaza olarak 1970-01-01, o zamandan beri saniye sayısı 4 bayt kullanır.

here MySQL saat biçimleri arasındaki farklar hakkında daha fazla bilgi edinebilirsiniz.

Sonunda, aşağı zaman sütun/randevun ne gerek yapmak için geliyor. Ya 2038 sonra önce 1970 tarihleri ve süreleri depolamak için ihtiyacınız var mı? DATETIME kullanın. Veritabanı boyutu ve timerange içinde olduğun hakkında endişelenmenize gerek var mı? TIMESTAMP kullanın. Sadece bir tarih saklamak için ihtiyacınız var? DATE kullanın. Yalnızca bir kez depolamak için ihtiyacınız var mı? TIME kullanın.

Tüm bunları söyledikten sonraRaylar aslında sizin için bu kararların bazıları yapar. :timestamp :datetime :date :time DATE TIME sırasıyla tekabül ederken DATETIME, varsayılan olacaktır.

Bu Raylar içinde, yalnızca tarih, saat veya her ikisini de saklamak için ihtiyacınız olup olmadığını karar vermek zorunda anlamına gelir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • lilstevie89

    lilstevie89

    25 Mart 2011