אין לי מושג אפילו מה זה "ביטוי חסר"
בכל מקרה את צריכה להבין כיצד עובדים תאריכים
1. תאריך אפס מבחינת השרת הוא:
1900-01-01 00:00:00.000
2. כאשר את עושה שימוש במספר בלי מרחאות כמו ל משל 1977 אז ברירת המחדל זה להשתמש בערך זה כדי להציג ימים שעברו מתאריך האפס. לכן :
אם תנסי למצוא את התאריך של 1977 תקבלי 1977 ימים אחרי תאריך האפס וזה אומר
1905-06-01 00:00:00.000
זה בדיוק זהה לחישוב של:
select DATEADD (day,0,1977)
לעומת זאת אם תנסי למצוא את התאריך של מספר שלילי כמו מינוס 1977 אז תקבלי 1977 ימי לפני תאריך האפס ז"א
1894-08-03 00:00:00.000
3. כאשר את רושמת מספרים עם סימון מינוס בינהם השרת אינו מבין שהתכוונת לתאריך בפורמט מסויים אלא מבצע חישוב על מספרים! לכן מבחינת השרת 01-01-1977 הוא בעצם המספר מינוס 1977 בלי קשר לתאריך.
select 01-01-1977 -- result: -1977
*** מסעיפים 1 עד 3 נובע שהתאריך של 01-01-1977 יהיה פשוט 1977 ימים לפני תאריך האפס ולכן נקבל
1894-08-03 00:00:00.000
4. כאשר יש מרחאות א מדובר בטקסט. השרת יודע לבצע פעולה של המרה מרומזת לפי הפורמט של התאריך בו אנחנו נעובדים. רק כאן נכנס נושא הפורמט של התאריך במקרה הנוכחי.
במקרה של מספר כמו 1977 במרחאות, השרת יזהה שזה השנה ולכן מבחינתו מדובר על
1977-01-01 00:00:00.000
במקרה שהפורמט מתאים לורמט שהוגדר בו אנחנו עובדים אז התרגום יהיה בהתאם