440
צפיות
צפיות
9
תשובות
תשובות
בעיה עם תאריכים
שלום לכולם!
אני רוצה לשלוף את כל הרשומות אשר התאריך שלהם הוא ב-10 ימי האחרונים.
אז עשיתי ככה:
יש שדה מסוג תאריך, ולשם אני מכניס ערך באופן הבא:
dmy = DateAdd("d",10,date())
ובשאילתה אני רושם:
WHERE dmy >= "&date()&"
אבל זה לא עובד, למה?
מפני שהתאריך לפני שהוא נכנס לטבלה הוא ככה: לדוגמא, התאריך 04/06/2004 שהוספנו לו 10 ימים: 14/06/2004, אבל כאשר הוא נכנס לטבלה הוא נהיה כזה: 6/14/2004… ולכן השאילתה לא יכולה להשוות ומחזירה את כל הרשומות…
מה עושים?
תודה.
אלברט
9 תשובות
תשתמש בזה כחלק מהשאילתא
WHERE dmy >= DateAdd("d",10,date())
אבל זה לא נראה לי הדרך…
אני לא יודע מה הדרך אבל לא נראה לי שצריך להשתמש כאן ב-dateAdd
אתה רוצה את 10 הימים האחרונים ולא את הבאים
ממש לא ככה…
כשעשיתי dateadd זה כאילו לתת לרשומה "תוקף"… אתה מבין?
ואז בשאילתה אנחנו מבקשים את הרשומות שה"תוקף" שלהן הוא יותר או שווה להיום….
השאלה שלי היא למה התאריך משתנה בזמן ניסה לטבלה?
כלומר 14/06/2004 הופך ל- 6/14/2004?
אפשר איכשהו לסדר את זה?
ניסיתה להכניס זאת כחלק מהשאילתא?
יכול להיות שזה קורה בגלל שהמחשב שלך הוא בעברית
למה לעשות דבר כזה?
זה לא נכון, כי אנחנו רוצים את הרשומות שהתאריך שלהן(התוקף) הוא גדול מהיום… ולא גדול מעוד 10 יום….
והמחשב שלי הוא באנגלית וגם השרת שאני עובד עליו הוא באנגלית וזה עדיין עושה את הבעיה…
לא ענית לי על השאלה שלמה זה משנה את התאריך בזמן שהוא מכניס ערך לטבלה?
נסה ככה
נסה עם הקוד הבא:
WHERE dmy >=#"&FormatDateTime(date(),2)&"#
אולי יעבוד..
ניסיתי וזה נותן לי את השגיאה הבאה:
Syntax error in date in query expression 'dmy>=#05/06/2004#'.
מה עושים?
מה השאילתה שלך ?
מהי כל השאילתה שלך כולל השינוי שאמרתי לך?
תעתיק לכאן את כל המשפט.
נסה כך:
select * from tbl where datediff('d',date(),yourfield) between 1 and 10
עובד ובגדול! תודה רבה