2010-03-13 26 views
7

ile bir tarih (makbuz?) Nasıl ayarlayabilirim? Üç sütunum var, y, m ve d (yıl, ay ve gün) ve bunu bir tarih olarak saklamak istiyorum.MYSQL: Ay, gün ve yıl

Bunu yapmak için mySQL'de hangi işlevi kullanırdım?

Görünüşe göre, maksat yıl ve yıl kullanır (aşağıya bakın), ancak ayım var.

Dizeyi (y, m, d) 'den yapılandırarak STR_TO_DATE (str, format) kullanabileceğimi biliyorum, ancak bunu yapmanın daha kolay bir yolu olduğunu tahmin ediyorum.

REFERANSLAR

MAKEDATE(year,dayofyear)

bir tarih, verilen yıl ve günündeki yıla değerleri döndürür. dayofyear 0'dan büyük olmalı veya sonuç NULL.

cevap

8

Sana uygun formatta bir dize kullanabilirsiniz inanıyoruz:

UPDATE table SET my_date = '2009-12-31'; 

Düzenleme: Evet yapabilirsiniz, sadece MySQL 5.1 doğrulamak.

5

Bu okunabilirliği yüksek değil ama şu çalışacak:

SELECT'1900-01-01' + INTERVAL y-1900 YEAR + INTERVAL m-1 MONTH + INTERVAL d-1 
DAY FROM ... 

emin değil CONCAT ve STR_TO_DATE kullanmaktan daha bu bir daha verimli olduğunu. Ben bu işe wil umut

1

.. a.dob TARİH

sahiptir benim sütunun adıdır

str_to_date(concat(year(curdate()) , '-', month(a.dob) , '-', day(a.dob)) , '%Y-%m-%d') 

İlgili konular