נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: Sql Server - חילוץ תאריך משדה DaeTime

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
חיימקה
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 18 April 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 243
נשלח בתאריך: 14 March 2012 בשעה 22:10 | IP רשוּם
ציטוט חיימקה

בס"ד

Sql Servre 2005 :
איך מחלצים את התאריך בלבד משדה מסוג DateTime?
למרבה ההפתעה אין פונקציה ישירה כזו בנוסח Date(myDateTime).

ברשת מסתובבות דוגמאות כאלה:

קוד:

SELECT Convert(VARCHAR(10), GetDate(), 103);

תוצאה: 14/03/2012.
לכאורה נפלא, אך זה אובייקט String, ועלולות להיווצר שגיאות. (למשל: בהמרת תוצאה זו לאובייקט DateTime של Dot.NET, בפלטפורמות מסויימות זה ייקרא כמו "היום השלישי לחודש הארבעה עשר", מה שבוודאי שגוי.)
רעיון שהגה אלחנן, עמיתי:
קוד:

SELECT Convert(DATETIME, Convert(INT, GetDate() - 0.5));

הסבר שלבי הפתרון:
1. הפוך את התאריך למספר מסוג int. כיון שהתאריך המלא הינו מספר הכולל שבר עשרוני המייצג את חלקי היום - השעות והדקות, הרי שכשנהפוך אותו ל int נעגל את המספר למספר שלם, כלומר ללא חלקי יום, כלומר ללא שעות ודקות.
2. את המספר שהתקבל הפוך בחזרה ל DateTime !
3. הפיכת מספר אמיתי למספר שלם אינה מוחקת את השבר, אלא מעלת אותו. כאשר השבר גדול מ 0.5 היא מעגלת אותו כלפי מעלה. אם כך, כאשר השעה מאוחרת מ 12 PM, אנו נקבל, בעצם, את היום הבא! איך נמנע בעיה זו? -  לפני הפיכת התאריך למספר, נפחית מהתאריך חצי יום, ורק אח"כ נהפוך אותו למספר!

א"כ, אלו השלבים, מהביטוי הפנימי ביותר - החוצה:
1. הפחתת חצי יום מהתאריך:
קוד:

GetDate() - 0.5

2. הפיכת התוצאה למספר מעוגל:
קוד:

Convert(INT, GetDate() - 0.5 [/)

3. הפיכת התוצאה לתאריך:
קוד:
Convert(DATETIME, Convert(INT, GetDate() - 0.5 [/))
.

בראבו!!



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

הצטרף / הצטרפה: 17 March 2012
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1
נשלח בתאריך: 17 March 2012 בשעה 12:25 | IP רשוּם
ציטוט מעיין כהני

יפה מאוד!

__________________
מעיין כהני - שירותי מוסיקה
חזרה לתחילת העמוד הצג את כרטיס החבר של מעיין כהני חפש הודעות אחרות של מעיין כהני בקר בדף הבית של מעיין כהני
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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