שמות הימים והחודשים

יום חמישי, דצמבר 2, 2010

ניתן לקבל את שם היום ושם החודש (פורמט מלא) של תאריך כלשהו כך: Select DatePart(Weekday,GetDate()), DateName(Weekday,GetDate()), DatePart(Month,GetDate()), DateName(Month,GetDate()), Cast(GetDate() As Varchar); כללתי בשליפה גם את מספר היום בשבוע, את מספר החודש ואת התאריך כטקסט הכולל את שם החודש בפורמט של שלוש אותיות. אני קיבלתי את הערכים הבאים: 5, Thursday, 12, December, Dec 2...
אין תגובות

כמה ימים יש בחודש נתון?

יום רביעי, יולי 28, 2010

במחשבה ראשונה- מוצאים את ההפרש בימים בין יום כלשהו באותו חודש והיום בחודש הבא. למשל- בין 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 בחודש, לזה נוסיף חודש, ונמצא את ההפרש: Select DATEDIFF(D,DATEADD(D,1-DatePart(D,'20100728'),'20100728'),DateAdd(M,1,DATEADD(D,1-DatePart(D,'20100728'),'20100728'))); נכון אך מעט מסורבל: גם ארוך וגם התאריך מצוטט ארבע פעמים! במחשבה שלישית- נגיע ל-1 בחודש על ידי הוספת מספר החודשים מאז "בריאת העולם" ל-0, באופן דומה נגיע...
אין תגובות