ברוך הבא, אורח
שם משתמש: סיסמא: זכור אותי

דיון: המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים

המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7086

  • שי
  • שי's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 4
  • קרמה: 0
שלום רב,
יש לי 3 שדות:
1. שדה מסוג תאריך/זמן (המכיל שעה ותאריך)
2. שדה מסוג תווי (המכיל שעה בלבד)
3. שדה מסוג תווי (המכיל תאריך בלבד)

אני מעוניין ליצור חישוב של הפרש הזמן בין השדה המפורט בסעיף 1 ובין הסעיפים 2 ו 3 ביחד. כלומר ליצור לבסוף שני שדות זהים המכילים שעה ותאריך ושיהיה אפשר להחסירבניהם ולמצוא את ההפרש שיופיע כמספר שבו אוכל להשתמש יותר מאוחר. חשבתי להשתמש בפנק'
F_DATE_DIFF אך איני מצליח להמיר את השדות התווים בכדי להשתמש בפנק' זו.
האם יש למישהו איזה דרך שבעזרתה אוכל לבצע את המרת השדות או כל דרך אחרת שתתן מענה לביצוע חישוב הפרשיי הזמנים.
תודה מראש וחג שמח,
שי.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7087

  • לינוּר
  • לינוּר's Avatar
  • Offline
  • Moderator
  • הודעות: 181
  • קרמה: 2
היי שי,
חג שמח.
(_days_between ([datetime],cast([datechar] as date))*24*60)
+
(
(cast(substring(cast([datetime] as varchar(20)), 12,2) as int)*60+
cast(substring(cast([datetime] as varchar(20)), 15,2) as int))
-
(cast(substring([timechar] , 1,2) as int)*60+
cast(substring([timechar] , 4,2) as int
)))

ואז אתה יכול לעבוד עם כל הפונקציות של קוגנוס.
אחר כך אתה יכול לתת לו פורמט של אינטרוול ולהציג בימים, שעות ודקות.
אבל אם אתה עובד על SQL אולי הייתי בונה פונקציה ב-DB ומפבלשת אותה מאחר ובSQL יש את הפונקציה:
datediff(minute, date1, date2)
יש מצב שיש דרך אופטימלית יותר- אם למישהו עולה דרך טובה יותר אשמח שתשתפו.. זה מה שעלה לי כעת.
חג שמח.
:smile:
Linur Serero
cognos.dwh.co.il/
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7088

  • שי
  • שי's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 4
  • קרמה: 0
היי לינור,
תודה רבה על העזרה.
אני אבדוק את העניין ואעדכן.
שוב תודה ושוב חג שמח.
שי.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7089

  • שי
  • שי's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 4
  • קרמה: 0
היי,
בדקתי את העניין וברובו הוא עובד טוב.
נתקלתי בבעיה בהמרת שדה התאריך/זמן (datetime) לשדה תווי. משום מה הוא לא נותן להמיר לא ע"י CAST ולא ע"י TO_CHAR ואז אני לא יכול לבצע את:


(cast(substring(cast([datetime] as varchar(20)), 12,2) as int)*60+
cast(substring(cast([datetime] as varchar(20)), 15,2) as int))

אשמח אם תוכלי בבקשה להסביר לי את חוקיי כתיבת הפנק' שפרטתי מעלה, אולי פשוט אני עושה טעות באופן הכתיבה או משתמש בפנק' על שדות לא טובים...

תודה מראש ושבת שלום,
שי
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7091

  • לינוּר
  • לינוּר's Avatar
  • Offline
  • Moderator
  • הודעות: 181
  • קרמה: 2
היי שי,
ראשית מתנצלת על המענה המאוחר.
1. אסביר לך את הפונקציה: ביצעתי המרה של השדה הטקסט שלך שמכיל רק תאריך לשדה מסוג תאריך וחיסרתי בין התאריכים באמצעות הפונקציה:
days_between
שהיא פונקציה של קוגנוס ולכן לא מגבילה לפי
vendor.
התוצאה המתקבלת היא ההפרש רק בימים.
מאחר ואתה מעוניין לקבל את ההפרש ברמת הדקות אזי הפעולה הנל לא הספיקה ולכן לקחתי את השעות משדה התאריך מסוג datetime שלך והפכתי אותו ל-int וכפלתי ב-60 (כדי שיהיה בדקות) והוספתי לו את הדקות משדה התאריך מסוג datetime והפכתי אותם גם ל-int כדי שאוכל לחבר לשעות ולקבל את סך הדקות.
בשלב זה קיבלת את הזמן בדקות משדה התאריך מסוג ה-datetime.
השלב הבא הוא לחסר את הדקות הללו מהזמן שיש לך בשדה הזמן מסוג טקסט ולכן פירקתי את שדה הזמן המדובר לשעות, הפכתי ל-int וכפלתי ב-60 והוספתי את הדקות משדה הזמן וכמובן הפכתי ל-int כדי שאוכל לחבר ביניהם.
2. מוזר לי שה-cast לא עובד לך, תנסה
cast_int(dataitem) or cast(dataitem, int)h
כאשר אתה משתמש ב-to_char אתה משתמש בפונקציית vendor (מניחה שאורקל).
תעדכן אם הסתדרת.
חג גלעד שמח!!!! :cheer:
Linur Serero
cognos.dwh.co.il/
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7093

  • שי
  • שי's Avatar
  • Offline
  • Fresh Boarder
  • הודעות: 4
  • קרמה: 0
היי,
תודה רבה על ההסבר המפורט.
הבנתי, יישמתי והדבר עובד ממש טוב.
שוב תודה ורק בשורות טובות.
שי
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:המרת שדה תווי לשדה מסוג תאריך וחישוב הפרש בזמנים 9 years 7 months ago #7094

  • לינוּר
  • לינוּר's Avatar
  • Offline
  • Moderator
  • הודעות: 181
  • קרמה: 2
סבבה מעולה, חג שמח!
Linur Serero
cognos.dwh.co.il/
הנהלת האתר ביטלה גישת כתיבה ציבורית.
מנהלים: לינוּר
זמן יצירת העמוד: 0.128 שניות

הדף שלנו בפייסבוק

מעניין? שתפו דף זה באמצעות הטלפון הנייד

אירועים קרובים

מאמרים

מגמות של ביג דאטה בעולם הביטוח
CA Technologies
SSIS - Buffer Size Optimization
קטגוריה ראשית
בדיקות BI ו-DWH לעומת הבדיקות בתחומים אחרים
קטגוריה ראשית
איסוף דרישות לפרויקטי BI
קטגוריה ראשית
כח המידע במיקוד
קטגוריה ראשית
0

Microsoft

Oracle

IBM

Informatica

Sap

SAS

Qlikview

Cloudera

Machine Learning