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

JOOQ के साथ आगामी जन्मदिन ढूँढना

jOOQ का फ़ील्ड .जोड़ें () विधि Oracle की

. की व्याख्या से प्रेरित है
DATE + NUMBER

... जहां NUMBER (यदि एक पूर्णांक या डबल ) कई दिनों का है। आप जो चाहते हैं वह SQL मानक INTERVAL YEAR to MONTH . को जोड़ने के बराबर है किसी दी गई तारीख को। इसे jOOQ's YearToMonth अंतराल प्रकार , यदि आप एक निरंतर अंतराल जोड़ना चाहते हैं। YearToMonth प्रकार java.lang.Number का भी विस्तार करता है , और इस प्रकार फ़ील्ड जोड़ें () , सहज रूप से।

हालांकि ऐसा फ़ील्ड . उत्पन्न करना संभव हो सकता है मौजूदा jOOQ 3.2 API के माध्यम से, मेरा मानना ​​है कि आप केवल सादा SQL का सहारा लेने के लिए बेहतर होंगे, संभवतः एक पुन:प्रयोज्य विधि बनाकर:

public static <T extends java.util.Date> 
Field<T> dateInCurrentYear(Field<T> field) {
    return DSL.field("DATE_ADD({0}, INTERVAL YEAR(CURDATE()) - YEAR({0}) YEAR)",
                     field.getDataType(),
                     field);
}

यह #2727 के लिए उपयोगी सुविधा जोड़ हो सकता है साथ ही...

दुर्भाग्य से, विभिन्न SQL बोलियों की दिनांक समय अंकगणित की व्याख्या को मानकीकृत करना कठिन है। हम वहां लगातार चीजों में सुधार कर रहे हैं, लेकिन अक्सर, सादा एसक्यूएल बोली-विशिष्ट दिनांक समय अंकगणितीय अभिव्यक्ति लिखने का सबसे अच्छा तरीका है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cPanel API का उपयोग करके MySQL डेटाबेस कैसे बनाएं?

  2. यूनिकोड सीएसवी फ़ाइल में बंगाली भाषा का पाठ प्रदर्शित नहीं किया गया

  3. MySQL विशिष्ट मान पर कॉलम गिनता है

  4. आईडी की अधिकतम संख्या वाले चयन आईडी

  5. RDS से डेटा पुनर्प्राप्त करने से विशेषता त्रुटि मिलती है:'sqlalchemy.cimmutabledict.immutabledict' ऑब्जेक्ट में कोई विशेषता नहीं है 'setdefault'