Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

रेल में आगामी जन्मदिन मॉड्यूल कैसे बनाएं?

कई उत्तरों ने वर्ष के दिन की गणना/भंडारण करने का सुझाव दिया है और उस पर छँटाई करते हैं, लेकिन जब आप वर्ष के अंत के करीब होते हैं और अगले वर्ष की शुरुआत में जन्मदिन वाले लोगों पर विचार करने की आवश्यकता होती है, तो यह अकेले बहुत अच्छा नहीं करेगा।

मैं एक समाधान के लिए जाऊंगा जहां आप प्रत्येक व्यक्ति के अगले जन्मदिन की पूरी तिथि (वर्ष, माह, दिन) की गणना करेंगे। , फिर उस पर छाँटें। आप इसे रूबी कोड में या डेटाबेस में संग्रहीत प्रक्रिया का उपयोग करके कर सकते हैं। बाद वाला तेज़ होगा, लेकिन बाद में आपके ऐप को किसी भिन्न db प्लेटफ़ॉर्म पर माइग्रेट करना कठिन बना देगा।

आगामी जन्मदिनों की इस सूची को प्रति दिन केवल एक बार अपडेट करना उचित होगा, जिसका अर्थ है कि आप किसी प्रकार के कैशिंग का उपयोग कर सकते हैं। इस प्रकार आवश्यक क्वेरी/कोड की गति एक समस्या से कम है, और जब तक आप परिणाम को कैश करते हैं तब तक ऐसा कुछ ठीक काम करना चाहिए:

class User
  def next_birthday
    year = Date.today.year
    mmdd = date_of_birth.strftime('%m%d')
    year += 1 if mmdd < Date.today.strftime('%m%d')
    mmdd = '0301' if mmdd == '0229' && !Date.parse("#{year}0101").leap?
    return Date.parse("#{year}#{mmdd}")
  end
end

users = User.find(:all, :select => 'id, date_of_birth').sort_by(&:next_birthday).first(5)

संपादित करें :लीप वर्ष के साथ सही ढंग से काम करने के लिए फिक्स्ड।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. परिणामों को पृष्ठांकित करते समय बाद के पृष्ठों में स्थानांतरित करने के लिए क्वेरी कैसे प्राप्त करें

  2. पायथन SQLAlchemy - MySQL सर्वर चला गया है

  3. कई आइटम के साथ पहले चयन के आधार पर दूसरे बॉक्स के साथ jQuery या Ajax का उपयोग करके 2 स्वत:पूर्ण/सुझाव इनपुट बॉक्स

  4. मैं तैयार विवरण की सामग्री को कैसे देख सकता हूँ?

  5. जहां क्लॉज में php वैरिएबल का उपयोग करते समय MySQL क्वेरी काम नहीं कर रही है?