
@day מסוג datetime בתוך הסוגריים העגולים, אחרי שם הפונקציה formatDate.RETURNS varchar(10), כלומר הפונקציה מחזירה מחרוזת באורך עשרה תווים.@str מסוג varchar(10) ומכניסים לתוכו את התאריך דרך פונקציית המערכת CONVERT עם קוד פורמט 103.@str. סוג המשתנה חייב להתאים לסוג שהוגדר בכותרת.dbo.formatDate(BirthDate) מציג את תאריך הלידה בפורמט החדש, לצד העמודה המקורית שמוצגת כמו שהיא.RIGHT(dbo.formatDate(BirthDate), 1) = '8', ומסדרים לפי התאריך המעוצב.CONVERT(varchar(10), @day, 103) ממיר את התאריך למחרוזת. את משמעות קוד הפורמט אפשר לחפש בפרק על פונקציות המערכת.ALTER FUNCTION.הטקסט המלא של הדקות הראשונות בהרצאה «פונקציה Scalar - עם פרמטרים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בשיעורנו היום נראה דוגמא נוספת ליצירת פונקציה בתוך בסיס הנתונים שלי UserDefinedFunction, פונקציות שהמשתמש מחולל. אם אנחנו נכנסים כאן לתוך הבסיס נתונים שלנו, בתוך הפוגרמביליטי, כפי שראינו בשיעור הקודם תחת FunctionsScalaredValue, אנחנו נראה פונקציה שיצרנו אותה בשיעור הקודם,
כשאני עומד על הפונקציה אני עושה קליק כמנה מודיפייד, אני מקבל את ה-בפנוכו, את התוכן של הפונקציה, כמו שעשינו בשיעור הקודם, ראינו שהפונקציה מחזירה אינטג'ר, היא מחזירה דאטה טייפ אינטג'ר, מספר שלם, אולם היא אינה מקבלת פרמטרים, ולכן בסוגריים העגולים לא נותר לי אלא לספק לה מאומה.
בשיעורנו היום אנחנו נראה כיצד אני מייצר פונקציה ושולח לה פרמטרים. אז בואו נפתח New Query חדש, בואו נגדיל את המסך. על מנת ליצור את ה-query שלי, בעצם ליצור את הפונקציה, אנחנו נשתמש שוב פעם בטמפלט אקספלורר תחת Views בתפריט, יש לנו טמפלטים מסוגים שונים ליצירת אובייקטים שונים
ומבוונים בתוך הדאטאבס כמו שראינו כבר. בתוך Functions אני יכול להיכנס ולמצוא שיש לי את התבנית ליצירת Create Scalar Functions, דאבל קליק שופך לי כאן בעצם את כל התבנית ליצירת הפונקציה.
נסגור את הטמפלט אקספלורר, נחווה הערות, נמחק הערות שאינן רלוונטיות מבחינתנו, והגענו לטורף העניין ליצירת הפונקציה כאשר היא תקבל פרמטרים.
הפונקציה שאותה אנחנו רוצים ליצור בעצם היא תקבל פרמטר מסוג דייט טיים ותחזיר לנו פרמטר מסוג ורקר. כלומר היא תפרמט לנו את התאריך למבנה שאותו אנחנו רוצים להציג. אז בואו נקרא לפונקציה פורמט דייט והפונקציה הזו כמו שאמרנו תקבל משתנה מסוג דייט טיים אז לכן אני קודם כל רושם את שם המשתנה ושם של משתנה מקומי בתוך הsql server תמיד
יתחיל בקרוכית שטרודל נקרא לו למשתנה שלנו day זה יהיה שם המשתנה קרוכית day וכרגע מה שנותר לי לציין זה מהו הדאטה טייפ שלו כלומר מאיזה סוג הוא אז אנחנו רוצים date time וזה מה שאני כותב זה הפרמטר שהתקבל לי בסוגריים העגולים של הפונקציה כאן אני רושם אותו.
אם כן, אנחנו כבר יודעים, בתוך הפורטוטייפ אני גם צריך לציין מה הפונקציה מחזירה. היא מקבלת Daytime, ואני רוצה שהיא תחזיר נבנה של תאריך כאשר הוא מסוג דאטה טייפ של ורקר, נבנה מכרוזתי.
אז בואו נציין ורקר, בואו ניתן לזה מספיק גודל, עשרה תווים, עשרה תאים, על מנת לייצג את התאריך בפורמט שאותו אני רוצה להציג.
איך אנחנו עושים את זה? אני צריך כאן בעצם לקבל את ה-DateTime ולהפוך אותו ל-Varcar. אז כדי להפוך אותו ל-Varcar, קודם כל אני צריך להגדיר משתנה Varcar שידע לקבל אותו.
כדי להגדיר, אנחנו מכירים Declared, הגדרה של המשתנה,