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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. חיבור בין 2 שדות תאריך ב SQL SERVER

חיבור בין 2 שדות תאריך ב SQL SERVER

מתוזמן נעוץ נעול הועבר ארכיון code613m
19 פוסטים 3 כותבים 1.1k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

    שלום לכולם
    כידוע מאחורי כל שדה תאריך יש ערך מספרי, כך לפחות זה באקסס, בצורה כזאת אפשר לחבר בין 2 שדות כשאחד מכיל את התאריך והשני מכיל את השעה, שהרי זה חיבור אריתמטי פשוט (שדה של שעה זה בעצם 1/1/1900 והשעה הרצויה ערכו הוא 0 נקודה משהו). לא כן ב SQL SERVER, והנה מה הפתרון, להפעיל פונקציה DATEADD נו באמת??? 3 פעמים, אחד בשביל השעות, אחד בשביל הדקות ואחד בשביל השניות. לא נראה לי כל כך. בחיבור אריתמטי הוא ממש לא מגיב, כלומר נותן את אותה תוצאה. מה שכן כאשר מוסיפים מספר שלם על תאריך הוא אכן מקדם את התאריך ביום באופן אוטומטי, אני מדבר כעת על שעה שזה אמור להיות שבר עשרוני עם מיליארד ספרות אחרי הנקודה. אגב בפונקציה convert הוא באמת מחזיר רק את החלק הintי של התאריך ללא השעה.
    כל תרומה תתקבל בברכה.
    תודה
    נ.ב. זה לא פתרון טוב כי הוא מכריח אותי לבחור שעה מסויימת לתאריך מסויים, אני רוצה להוסיף את ערך השעה לתאריך ושעה שבחרתי!!!

    פורסם במקור בפורום CODE613 ב22/07/2014 20:56 (+03:00)

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

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

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

      וטיפ לחיפוש בגוגל השתמש במילים אלו: sql server combine date time

      פורסם במקור בפורום CODE613 ב23/07/2014 11:39 (+03:00)

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

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

      תגובה 1 תגובה אחרונה
      0
      • S מנותק
        S מנותק
        softs
        כתב ב נערך לאחרונה על ידי
        #3

        ג"א מצטרף לדברי דוד, האופרטור + עובד מצוין:

        DECLARE @d AS DATETIME  = GETDATE()
        DECLARE @t AS TIME = '01:01:01'
        
        SELECT @D + @t
        

        פורסם במקור בפורום CODE613 ב23/07/2014 14:36 (+03:00)

        תגובה 1 תגובה אחרונה
        1
        • א מנותק
          א מנותק
          ארכיטקט
          כתב ב נערך לאחרונה על ידי
          #4
          DECLARE @d AS DATETIME  = GETDATE();
          DECLARE @t AS TIME(7) = '01:00:00';
          
          SELECT @D + @t;
          

          The data types datetime and time are incompatible in the add operator.
          נו מי יתרגם לנו..

          פורסם במקור בפורום CODE613 ב23/07/2014 17:09 (+03:00)

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

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

            כנראה 2008 או קדום.
            נסה ככה:

            DECLARE @d AS DATETIME  = GETDATE();
            DECLARE @t AS TIME(7) = '01:00:00';
             
            SELECT @D + CAST(@t AS DATETIME);
            

            פורסם במקור בפורום CODE613 ב23/07/2014 17:21 (+03:00)

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

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

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

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

              פורסם במקור בפורום CODE613 ב23/07/2014 17:34 (+03:00)

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

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

                @ארכיטקט

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

                רק תסביר לי העלית בהודעה שלך קטע שבכלל לא הרצת? 😢

                פורסם במקור בפורום CODE613 ב23/07/2014 18:16 (+03:00)

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

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

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

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

                  פורסם במקור בפורום CODE613 ב23/07/2014 19:59 (+03:00)

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

                  תגובה 1 תגובה אחרונה
                  1
                  • S מנותק
                    S מנותק
                    softs
                    כתב ב נערך לאחרונה על ידי
                    #9

                    מודה ועוזב ירוחם . . .
                    אגב לפני 2008 לא היה TIME . . .
                    ואגב TIME עם או בלי ה 7 זה אותו דבר (כמעט)
                    מקור
                    http://msdn.microsoft.com/en-us/library/bb677243.aspx

                    פורסם במקור בפורום CODE613 ב24/07/2014 11:31 (+03:00)

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

                      למה זה לא עובד?

                      select   cast(GETDATE() as date) + cast(GETDATE() as time)
                      

                      פורסם במקור בפורום CODE613 ב31/07/2014 11:04 (+03:00)

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

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

                        אהה נשמע קצת מסובך...

                        פורסם במקור בפורום CODE613 ב31/07/2014 11:07 (+03:00)

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

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

                          טוב לא צריך להגיע לתשובה הקודמת. אבל מה שייצא לי זה מחריד, איזה "קרומקייט" צריך כדי לקבל תאריך ושעה נוכחיים :lol: :lol: :lol: :lol:

                          select    CAST(cast(GETDATE() as date) AS DATETIME) + CAST(cast(GETDATE() as time) AS DATETIME);
                          

                          סתם... תכלס' זה עובד כשיש לך 2 שדות שונים ומשונים לחבר ביניהם.....
                          ועל זה אמרתי פעם למישהו בישיבה קטנה "יותר מידי קרומקייט, זה גם לא טוב..."

                          פורסם במקור בפורום CODE613 ב31/07/2014 11:13 (+03:00)

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

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

                            תגיד מה אתה מנסה לעשות?
                            אני מקוה שאתה מודע לכך שהGETDATE נותן לך את התוצאה הסופית שלך מלכתחילה.

                            פורסם במקור בפורום CODE613 ב31/07/2014 11:28 (+03:00)

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

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

                            תגובה 1 תגובה אחרונה
                            0
                            • א מנותק
                              א מנותק
                              ארכיטקט
                              כתב ב נערך לאחרונה על ידי
                              #14

                              @דוד ל.ט.

                              תגיד מה אתה מנסה לעשות?
                              אני מקוה שאתה מודע לכך שהGETDATE נותן לך את התוצאה הסופית שלך מלכתחילה.

                              נו אמרתי:
                              @ארכיטקט

                              "יותר מידי קרומקייט, זה גם לא טוב..."

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

                              פורסם במקור בפורום CODE613 ב31/07/2014 12:12 (+03:00)

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

                              תגובה 1 תגובה אחרונה
                              0
                              • S מנותק
                                S מנותק
                                softs
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @ארכיטקט

                                למה זה לא עובד?

                                select   cast(GETDATE() as date) + cast(GETDATE() as time)
                                

                                כי ל DATE אין מקום ל TIME אתה צריך להמיר ל DATETIME ואז להוסיף, כדלהלן:

                                select  CAST(GETDATE() as DATETIME) + cast(GETDATE() as TIME)
                                

                                פורסם במקור בפורום CODE613 ב31/07/2014 12:24 (+03:00)

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

                                  @ארכיטקט

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

                                  נו זה ממש כמו הקודים שכתב SOFT בעבר עם שינוי מינורי:

                                  DECLARE @d AS DATETIME  = '2014-10-10';
                                  DECLARE @t AS TIME(7) = CAST(GETDATE() AS DATETIME);
                                   
                                  SELECT @D + @t;
                                  

                                  אגב, ממש לא נתפס אצלי הסיטואציה של תאריך ממקור פלוני ושעה נוכחית

                                  @softs

                                  כי ל DATE אין מקום ל TIME אתה צריך להמיר ל DATETIME ואז להוסיף, כדלהלן:

                                  select  CAST(GETDATE() as DATETIME) + cast(GETDATE() as TIME)
                                  

                                  למה להמיר? ככה וזהו

                                  select  GETDATE() + cast(GETDATE() as TIME)
                                  

                                  פורסם במקור בפורום CODE613 ב31/07/2014 12:35 (+03:00)

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

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

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • S מנותק
                                    S מנותק
                                    softs
                                    כתב ב נערך לאחרונה על ידי
                                    #17

                                    אני מניח שהוא שיקף סיטואציה שבה יש לו שדה DATE ולכן ההמרה

                                    פורסם במקור בפורום CODE613 ב31/07/2014 12:59 (+03:00)

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

                                      @softs

                                      אני מניח שהוא שיקף סיטואציה שבה יש לו שדה DATE ולכן ההמרה

                                      סוף סוף הבנתי אותו.

                                      פורסם במקור בפורום CODE613 ב31/07/2014 14:10 (+03:00)

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

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

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • א מנותק
                                        א מנותק
                                        ארכיטקט
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        @softs

                                        אני מניח שהוא שיקף סיטואציה שבה יש לו שדה DATE ולכן ההמרה

                                        סליחה שלא הייתי כאן והיו צריכים לענות במקומי, softs תודה רבה.

                                        פורסם במקור בפורום CODE613 ב31/07/2014 14:26 (+03:00)

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

                                        תגובה 1 תגובה אחרונה
                                        1

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

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

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