שלח תשובה

זירת השאלות

227
צפיות
9
תשובות

בעיה עם תאריכים

,‏ 4 ביוני, 2004

שלום לכולם!
אני רוצה לשלוף את כל הרשומות אשר התאריך שלהם הוא ב-10 ימי האחרונים.
אז עשיתי ככה:
יש שדה מסוג תאריך, ולשם אני מכניס ערך באופן הבא:

dmy = DateAdd("d",10,date())

ובשאילתה אני רושם:

WHERE dmy >= "&date()&"

אבל זה לא עובד, למה?
מפני שהתאריך לפני שהוא נכנס לטבלה הוא ככה: לדוגמא, התאריך 04/06/2004 שהוספנו לו 10 ימים: 14/06/2004, אבל כאשר הוא נכנס לטבלה הוא נהיה כזה: 6/14/2004… ולכן השאילתה לא יכולה להשוות ומחזירה את כל הרשומות…
מה עושים?

תודה.
אלברט


תגיות:

9 תשובות

  1. ניר טייב הגיב:

    תשתמש בזה כחלק מהשאילתא


    WHERE dmy >= DateAdd("d",10,date())

    אבל זה לא נראה לי הדרך…
    אני לא יודע מה הדרך אבל לא נראה לי שצריך להשתמש כאן ב-dateAdd
    אתה רוצה את 10 הימים האחרונים ולא את הבאים

  2. albert הגיב:

    ממש לא ככה…
    כשעשיתי dateadd זה כאילו לתת לרשומה "תוקף"… אתה מבין?
    ואז בשאילתה אנחנו מבקשים את הרשומות שה"תוקף" שלהן הוא יותר או שווה להיום….
    השאלה שלי היא למה התאריך משתנה בזמן ניסה לטבלה?
    כלומר 14/06/2004 הופך ל- 6/14/2004?
    אפשר איכשהו לסדר את זה?

  3. ניר טייב הגיב:

    ניסיתה להכניס זאת כחלק מהשאילתא?
    יכול להיות שזה קורה בגלל שהמחשב שלך הוא בעברית

  4. albert הגיב:

    למה לעשות דבר כזה?
    זה לא נכון, כי אנחנו רוצים את הרשומות שהתאריך שלהן(התוקף) הוא גדול מהיום… ולא גדול מעוד 10 יום….
    והמחשב שלי הוא באנגלית וגם השרת שאני עובד עליו הוא באנגלית וזה עדיין עושה את הבעיה…
    לא ענית לי על השאלה שלמה זה משנה את התאריך בזמן שהוא מכניס ערך לטבלה?

  5. D30dk הגיב:

    נסה ככה
    נסה עם הקוד הבא:


    WHERE dmy >=#"&FormatDateTime(date(),2)&"#

    אולי יעבוד..

  6. albert הגיב:

    ניסיתי וזה נותן לי את השגיאה הבאה:

    Syntax error in date in query expression ‘dmy>=#‏05/‏06/‏2004#’.

    מה עושים?

  7. D30dk הגיב:

    מה השאילתה שלך ?
    מהי כל השאילתה שלך כולל השינוי שאמרתי לך?
    תעתיק לכאן את כל המשפט.

  8. אוריקס הגיב:

    נסה כך:


    select * from tbl where datediff(‘d’,date(),yourfield) between 1 and 10

שלח תשובה