2011-06-15 5 views
14

Eklenme tarihi olmadan yakutta bir zamanı temsil etmenin bir yolu var mı? Zamanlı bir uygulama yapıyorum ve sadece giriş/çıkış zamanlarına ihtiyacım var, tarih için ayrı bir sütun var.Ruby ile tarih belirtilmemiş bir saati temsil edin

MySQL TIME veri türü yalnızca zamanı depolar, ancak Rails'de 1 Ocak 2000'de geri dönülür.

Tarih bölümünü yok saymalı mıyım yoksa ortadan kaldırmanın bir yolu var mı? Bunu ortadan kaldırmak için hiçbir yolu yok

cevap

9

, because:

Zaman Çağ, 1 Ocak 1970 00:00 UTC beri fraksiyonu ile saniye sayısı olarak dahili olarak depolanır.

Bunun gibi biçimlendirmek: bir tamsayı sütununda gece yarısından bu yana dakika olarak hiçbir ekli tarihleri ​​ile

t = Time.now 
t.strftime("at %I:%M%p") 
+0

Bunu nasıl biçimlendirebileceğimi biliyorum, çıkarma ve iki farklı tarihe sahip olmaktan daha çok endişeliyim. – loosecannon

+2

Sadece doğruluk gereksinimlerinize bağlı olarak t.hour, t.min, t.sec vb. Saat 23:00 ve çıkış saati 01:00 olduğunda ne olur? – sml

+0

eğer böyle bir şey olursa iki giriş yapabilirler, burada hiçbir vücut bu saatlerde çalışmamaktadır, bu yüzden şu anda bir sorun değil. Ama evet, sadece bunu doğal olarak destekleyeceğini umuyordum. – loosecannon

44

Biz sadece mağaza kez (yani Postgres değil MySQL ama yine de). Belki bu yaklaşım sizin için de işe yarayabilir?

+2

ah evet, bu şekilde db depolamak gerekmez, ama onları karşılaştırmak için kolay bir yol olabilir. ActiveSupport bir time.seconds_since_midnight yöntemini içerir. – loosecannon

+0

Bu harika bir fikir! –

+1

tam olarak ihtiyacım olan şey. Bu adam çirkin bir dahi. – mraaroncruz