דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. SQL - GROUP BY HEBREW MONTH ?

SQL - GROUP BY HEBREW MONTH ?

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 5 כותבים 497 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • OdedDvirO מחובר
    OdedDvirO מחובר
    OdedDvir
    השיב לאיש נחמד ב נערך לאחרונה על ידי
    #2

    @איש-נחמד אין פונקציה מובנית לחישוב תאריך עברי.
    אתה צריך לחשב בעצמך את החודש העברי, ולשמור אותו בשדה נפרד ברשומה. ואז תוכל לבצע שאילתת קיבוץ עליו.
    לא צינת את השפה בה אתה משתמש, אבל יש ספריות בשביל זה.
    אם התאריך סטטי (השדה לא נתון לשינויים), תחשב את מספר החודש העברי (על ידי קוד כנ"ל) בזמן יצירת הרשומה, ואם הוא נתון לשינויים - תחשב אותו בזמן עדכון שדה התאריך הלועזי.

    dovidD תגובה 1 תגובה אחרונה
    7
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לOdedDvir ב נערך לאחרונה על ידי
      #3

      עוד אפשרות שאני זוכר שממליצים זה טבלה סטטית עם רשימת ימים.
      מדובר באלפי שורות בודדים, ואז בהנחה שיש לך שדה תאריך ללא שעה זה JOIN פשוט.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      dovidD א איש נחמדא 3 תגובות תגובה אחרונה
      3
      • dovidD dovid העביר נושא זה מ-תוכנה ב-
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב לdovid ב נערך לאחרונה על ידי dovid
        #4

        להלן קוד linqpad שמייצר רשימה כזו (בחמישית השניה במחשב שלי)

        var HebrewCulture = System.Globalization.CultureInfo.CreateSpecificCulture("he-IL");
        HebrewCulture.DateTimeFormat.Calendar = new System.Globalization.HebrewCalendar();
        
        var startDate = new DateTime(2000,01,01);
        var listDays = Enumerable.Range(0, 50_000).Select(e => startDate.AddDays(e));
        var rows = listDays.Select(d => new
        {
        	GDate = d,
         	HebDate = d.ToString("d", HebrewCulture),
        	HebMonth = d.ToString("MMMM", HebrewCulture),
        	HebYear = d.ToString("yyyy", HebrewCulture),
        	HebYearInt = HebrewCulture.DateTimeFormat.Calendar.GetYear(d),
        	HebMonthInt = HebrewCulture.DateTimeFormat.Calendar.GetMonth(d)
        });
        
        Util.WriteCsv(rows, @"D:\allDates.csv");
        

        זה בין השנים 2000-2136

        עריכה: צירפתי את הקובץ לשימוש מי שרוצה
        allDates.zip

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        7
        • yossizY מנותק
          yossizY מנותק
          yossiz
          השיב לאיש נחמד ב נערך לאחרונה על ידי yossiz
          #5

          @איש-נחמד סליחה שאני מעיר שלא ממין השאלה, שים לב לחוק חדש סעיף ב.3

          ההודעה עצמה צריכה להכיל כל פרט נדרש בלי להסתמך כלל על הכותרת.

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          תגובה 1 תגובה אחרונה
          4
          • א מנותק
            א מנותק
            ארכיטקט
            השיב לdovid ב נערך לאחרונה על ידי
            #6

            @dovid אמר בSQL - GROUP BY HEBREW MONTH ?:

            עוד אפשרות שאני זוכר שממליצים זה טבלה סטטית עם רשימת ימים.
            מדובר באלפי שורות בודדים, ואז בהנחה שיש לך שדה תאריך ללא שעה זה JOIN פשוט.

            זה אני המלצתי בזמנו ונראה לי שהעלתי לפורום בצורה כזו או אחרת את הטבלה ב SQL SERVER אם זה רלוונטי אעלה אולי שוב (לא מבטיח כלום לאף אחד כבר שנים).

            אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

            תגובה 1 תגובה אחרונה
            2
            • איש נחמדא מנותק
              איש נחמדא מנותק
              איש נחמד
              השיב לdovid ב נערך לאחרונה על ידי איש נחמד
              #7

              @dovid אמר בSQL - GROUP BY HEBREW MONTH ?:

              עוד אפשרות שאני זוכר שממליצים זה טבלה סטטית עם רשימת ימים.
              מדובר באלפי שורות בודדים, ואז בהנחה שיש לך שדה תאריך ללא שעה זה JOIN פשוט.

              זה אומר שאני צריך להחזיק טבלה שתחזיק את כל הימים מכאן ועד סוף חיי היישום?
              אגב, זה לא תואם לשיטת הספירה של PHP, לפיה כל שנה נספרת עם 13 חודשים כדי לשמור על מספר חודש קבוע בכל שנה (אלול תמיד יהיה 13).

              להיות איש נחמד זה מחייב...

              dovidD תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                השיב לאיש נחמד ב נערך לאחרונה על ידי dovid
                #8

                @איש-נחמד הטבלה שצירפתי מתאימה לכל חיי היישום שלך ( אלא"כ הוא עוסק בהיסטוריה כמו המהפכה הצרפתית).
                זה לא משנה הPHP פה (ולא שהבנתי למה זה לא מתאים) כי זה JOIN ברמת הSQL. אתה מוסיף את זה כטבלה ואתה מחבר את זה בשאילתה הרצויה ולפי זה עושה GROUP BY.

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                איש נחמדא תגובה 1 תגובה אחרונה
                2
                • איש נחמדא מנותק
                  איש נחמדא מנותק
                  איש נחמד
                  השיב לdovid ב נערך לאחרונה על ידי
                  #9

                  @dovid אמר בSQL - GROUP BY HEBREW MONTH ?:

                  זה לא משנה הPHP פה (ולא שהבנתי למה זה לא מתאים) כי זה JOIN ברמת הSQL. אתה מוסיף את זה כטבלה ואתה מחבר את זה בשאילתה הרצויה ולפי זה עושה GROUP BY.

                  ראה כאן:
                  https://www.php.net/manual/en/function.jdtojewish.php#:~:text=In Hebrew leap years%2C the

                  ההערה שלי באה על כך שהצמדת לחודשים ניסן - אלול בשנים לא מעוברות את הספירה 7 - 12, בעוד שב- PHP הם תמיד יהיו 8 - 13.

                  להיות איש נחמד זה מחייב...

                  dovidD תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לאיש נחמד ב נערך לאחרונה על ידי
                    #10

                    @איש-נחמד אמר בSQL - GROUP BY HEBREW MONTH ?:

                    ההערה שלי באה על כך שהצמדת לחודשים ניסן - אלול בשנים לא מעוברות את הספירה 7 - 12, בעוד שב- PHP הם תמיד יהיו 8 - 13.

                    לא מבין מה אכפת לך איך PHP ממספר, צריך להיות אכפת לך מה אתה מעוניין.

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    איש נחמדא תגובה 1 תגובה אחרונה
                    0
                    • איש נחמדא מנותק
                      איש נחמדא מנותק
                      איש נחמד
                      השיב לdovid ב נערך לאחרונה על ידי איש נחמד
                      #11

                      @dovid אמר בSQL - GROUP BY HEBREW MONTH ?:

                      @איש-נחמד אמר בSQL - GROUP BY HEBREW MONTH ?:

                      ההערה שלי באה על כך שהצמדת לחודשים ניסן - אלול בשנים לא מעוברות את הספירה 7 - 12, בעוד שב- PHP הם תמיד יהיו 8 - 13.

                      לא מבין מה אכפת לך איך PHP ממספר, צריך להיות אכפת לך מה אתה מעוניין.

                      כנראה לא הובן מדברי (?), אבל אני עובד עם PHP (רח"ל) באתר מבוסס וורדפרס (חטא שני), ומשכך אני נצרך לעבוד עם נתונים שתואמים ל-PHP. אם אני אבקש מ-PHP את החודש ה-12 של 5782 הוא יתן לי את חודש אב ולא את חודש אלול.

                      להיות איש נחמד זה מחייב...

                      dovidD תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לאיש נחמד ב נערך לאחרונה על ידי
                        #12

                        @איש-נחמד ביקשת group by לפי חודש. בשביל זה אתה לא צריך בכלל חודש מספרי, גם קשקוש ברומאית מספיק. צריפתי את המספר לשימושים אחרים. בשביל לגשת לחודש הנכון בPHP אתה בכלל לא צריך את כל הטבלה הזו, יש פונקציות בPHP לתאריך עברי לזכרוני.

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        תגובה 1 תגובה אחרונה
                        2
                        • dovidD dovid העביר נושא זה מ-תכנות ב-

                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום