ניתן לקבל את שם היום ושם החודש (פורמט מלא) של תאריך כלשהו כך: Select DatePart(Weekday,GetDate()), DateName(Weekday,GetDate()), DatePart( Month ,GetDate()), DateName( Month ,GetDate()), Cast (GetDate() As Varchar ); כללתי בשליפה גם את מספר היום בשבוע, את מספר החודש ואת התאריך כטקסט הכולל את שם החודש בפורמט של שלוש אותיות. אני קיבלתי את הערכים הבאים: 5, Thursday, 12, December, Dec 2 2010 3:15PM השמות נלקחים מטבלת המערכת: Select * From sys.syslanguages; כפי שניתן לראות- לכל שפה מוגדרים השמות השונים...
במחשבה ראשונה- מוצאים את ההפרש בימים בין יום כלשהו באותו חודש והיום בחודש הבא.
למשל- בין 28/07/2010 ל-28/08/2010 יש 31 ימים: Select DATEDIFF(D, '20100728' ,DATEADD(M,1, '20100728' )); הבעייה היא שאם השיטה הזו תופעל על 31/08/2010 נקבל 30 ימים באוגוסט מכיוון שהמערכת תחשב את ההפרש בין 31/08/2010 ו-30/09/2010: Select DATEDIFF(D, '20100831' ,DATEADD(M,1, '20100831' )); במחשבה שניה- נבצע את החישוב על ה-1 בחודש, כלומר- מ-28/07/2010 נפחית 27 ימים כדי להגיע ל-1 בחודש, לזה נוסיף...