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

MYSQL दिनांक समय राउंड टू निकटतम घंटा

अपडेट:मुझे लगता है https://stackoverflow.com/a/21330407/480943 एक बेहतर उत्तर है।

आप इसे कुछ तारीख अंकगणित के साथ कर सकते हैं:

SELECT some_columns,
    DATE_ADD(
        DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00"),
        INTERVAL IF(MINUTE(the_date) < 30, 0, 1) HOUR
    ) AS the_rounded_date
FROM your_table

स्पष्टीकरण:

  • DATE_FORMAT :DATE_FORMAT(the_date, "%Y-%m-%d %H:00:00") छोटी की गई तारीख को निकटतम घंटे में लौटाता है (मिनट और दूसरे भाग को शून्य पर सेट करता है)।

  • MINUTE :MINUTE(the_date) दिनांक का मिनट मान प्राप्त करता है।

  • IF :यह एक सशर्त है; यदि पैरामीटर 1 में मान सत्य है, तो यह पैरामीटर 2 देता है, अन्यथा यह पैरामीटर 3 देता है। तो IF(MINUTE(the_date) < 30, 0, 1) का अर्थ है "यदि मिनट का मान 30 से कम है, तो 0 लौटाएं, अन्यथा 1 लौटाएं"। इसे हम राउंड करने के लिए उपयोग करने जा रहे हैं -- यह वापस जोड़ने के लिए घंटों की संख्या है।

  • DATE_ADD :यह परिणाम में राउंड के लिए घंटों की संख्या जोड़ता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्तियों की गिनती के लिए PHP के साथ मेरा एसक्यूएल सर्वोत्तम अभ्यास

  2. लेट/लोन टेक्स्ट कॉलम को 'पॉइंट' टाइप कॉलम में ले जाना

  3. गोलांग में पंक्तियों की संख्या गिनें

  4. केवल एक तालिका से उपयोगकर्ताओं का चयन करें यदि दूसरे में नहीं

  5. php . का उपयोग करके mysql डेटाबेस में चेकबॉक्स मान को कैसे सहेजना है