› פורומים › אפיון ופיתוח פריוריטי › הפקת שאילתת SQL
- This topic has 10 תגובות, 6 משתתפים, and was last updated לפני 6 שנים, 10 חודשים by ALON.
- Post
-
- יוני 28, 2010 בשעה 4:10 pm
שלום ,הפקתי שאילתת SQL מדוח ORDDELAY , כל הנתונים יצאו טובים מלבד שדה תאריך .
במקום תאריך מופיע לי מספר משונה לדוגמא 11626560
בדקתי שהשדה התאריך הינו מסוג DATE
האם ישנה דרך לפתור את הנושא הנ"ל ?
תודה מראש
יניב
מוצגות 10 תגובות – 1 עד 10 (מתוך 10 סה״כ)
- Replies
-
- יוני 28, 2010 בשעה 6:35 pm
אם אתה מבקש לקבל בדו"ח את התאריך בפורמט הסטנדרטי DD/MM/YY, אז יש לשנות במחולל את הנתונים הבאים עבור עמודה ORDERITEMS.DUEDATE :רוחב = 8
איפיון הצגה = 0אלון.
- יוני 29, 2010 בשעה 11:04 am
היי ,בדוח של פריוריטי הכל תקין .
אני מתכוון שאת השאילתה ביצעתי באמצעות הפריוריטי ואת השאילתה אני מושך לאקסל באמצעות microsoft query ושם מופיע לי מספרים במקום תאריכים .
האם ישנו פתרון לכך ?
יניב
- יוני 29, 2010 בשעה 12:13 pm
התאריכים בפריוריטי מאוחסנים בתור מספרים המציגים מספר דקות מאז 01.01.88
קיימות פונקציות מוכנות להמרה, או לחילופין, אתה יכול לכתוב פונקציה משלך בכלי החיצוני שאתה משתמש.- יוני 29, 2010 בשעה 1:25 pm
אם את השאילתא אתה מבצע בפריוריטי, אתה יכול לאחסן את זה בתוך CHAR ע"י פונקצית DTOA (ראה סינטקס ב-SDK)- יולי 1, 2010 בשעה 3:13 pm
באקסל תעשה קליק ימני על העמודה ואז לחץ על עיצוב תאים ואז "מותאם אישית ותמצא שם ברשימהdd/mm/yy
ואז יוצג תאריך כמו שצריך- יולי 1, 2010 בשעה 4:20 pm
אני לא בטוח שההמרה באמצעות האקסל יעבוד כאן.
המספר שהתקבל מהפריוריטי כדוגמת 11626560, הינו מספר הדקות מאז ינואר 1988 (ראו תגובתו של מיכאל).
באקסל, הספירה מתחילה החל משנת 1900 לפי ימים ולא בדקות כמו בפריוריטי.
לדוגמא, התאריך של היום 1/7/2010 באקסל מוכר כמספר 40360אלון.
- יולי 1, 2010 בשעה 7:20 pm
שלום ,אכן המרה מאקסל לא הפתרון .
לאחר חפירה באינטרנט מצאתי את הפקודה אשר יש לשנות בשאילתה שמסדרת את העניין להלן דוגמא :
dateadd(minute,XXX.dbo.CUSTOMERS.CREATEDDATE,'1988/01/01'),
יניב
- יולי 7, 2010 בשעה 1:53 pm
יניב
אני לא רואה את הפתרון שלך משום מה
בכל מקרה, לטובת מי שיעלה על הדיון הזה בעתיד אני יכול לבקש שתאשר את המסקנה שלי שה-sql שהזכרת זה sql של sql server ולא sql של פריוריטי שהרצת דרך דרייבר ה-odbc של פריוריטי (Tabula Driver)
אם כן אסביר לקוראים שהסיבה שקיבלת מספרים זה בגלל שכך פריוריטי שומר תאריכים. אפשר לראות אותם ערכים מתוך פריוריטי ע"י שליפת שדה תאריך בצורת "אפס פלום שם שדה". קיימת פונקציה שמוזכרת ב-SDK שהופכת מספר כזה לתאריך SQL (דהיינו ערך מסוג תאריך). בפועל אפשר לעלות על החישוב ברלוונטי לבד ללא צורך בפונקציה שלהם, אין שם קסם. הצעות להמיר לטקסט פחות מתאימות כי אי אפשר לעבד "תאריכים" כאלה.
ה-tabula driver יודע להחזיר שדות תאריך של פריוריטי בתור שדה שמוכר ל-odbc כתאריך, אין צורך בהמרה, זאת המטרה של הדרייבר.
בברכה
יצחק[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- יולי 7, 2010 בשעה 3:12 pm
הSQL המדובר הוא אכן SQL SERVER.יניב
מוצגות 10 תגובות – 1 עד 10 (מתוך 10 סה״כ)
- יש להתחבר למערכת על מנת להגיב.