Menu
Coddy logo textTech

עבודה עם תאריכים חלק 3

חלק מהיחידה יסודות במסלול ה-SQL של Coddy. שיעור 33 מתוך 72.

SQL מספקת כמה פונקציות שימושיות לעיבוד תאריכים ולעיצובם. הנה כמה פונקציות תאריך נפוצות:

  1. DATE() - ממירה מחרוזת לתאריך
  2. STRFTIME() - מעצבת תאריכים בהתאם לפרמטרים שצוינו
  3. DATE('now') - מקבלת את התאריך הנוכחי:

לדוגמה, המרה של מחרוזת לתאריך:

SELECT DATE('2023-05-15 13:45:00')
-- מחזיר: 2023-05-15

SELECT DATE('now')
-- מחזיר את התאריך הנוכחי

לדוגמה, חילוץ השנה, החודש והיום מתוך תאריך:

-- קבל את השנה
SELECT STRFTIME('%Y', '2023-05-15')
-- מחזיר: 2023

-- קבל את החודש
SELECT STRFTIME('%m', '2023-05-15')
-- מחזיר: 05

-- קבל את היום
SELECT STRFTIME('%d', '2023-05-15')
-- מחזיר: 15

-- הצג שילוב של שנה ויום (אפשר להשתמש בכל תו מפריד)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- מחזיר: 2023:15

-- השתמש במקף כמפריד במקום זאת
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- מחזיר: 15-05-2023

-- קבל את היום בשבוע
SELECT STRFTIME('%w', '2023-05-15')
-- מחזיר: 1 (יום שני; יום ראשון הוא 0)

מצייני פורמט נפוצים:

  • %Y: שנה (4 ספרות)
  • %m: חודש (01-12)
  • %d: יום בחודש (01-31)
  • %w: יום בשבוע (0-6, יום ראשון הוא 0)
  • %H: שעה (00-23)
  • %M: דקה (00-59)
  • %S: שנייה (00-59)

אפשר להשתמש בכל תו מפריד בין המציינים (למשל -, :, /). לדוגמה, STRFTIME('%d-%m-%Y', date) וגם STRFTIME('%d:%m:%Y', date) משלבים יום, חודש ושנה, רק עם תווים מפרידים שונים.

אפשר לשלב את הפונקציות האלה בשאילתות:

-- מצא את כל הרשומות מהשנה הנוכחית
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

אתגר

קל

טבלאות ועמודות זמינות:

  • events: id, start, end

כתבו שאילתה שמציגה:

  • את מזהה האירוע
  • את תאריך ההתחלה בפורמט "DD-MM-YYYY". קראו לעמודה זו formatted_start
  • את תאריך הסיום בפורמט "DD-MM-YYYY". קראו לעמודה זו formatted_end
  • את משך הזמן בימים בין ההתחלה לסיום, מעוגל למספר השלם הקרוב ביותר. קראו לעמודה זו duration_days

סננו רק את השורות שבהן השנה של העמודה start היא 2009 (STRFTIME() מחזירה מחרוזת ולא מספר).

מיינו את התוצאות לפי משך הזמן בימים בסדר יורד.

תזכורת: כדי לחשב את ההפרש בין תאריכים השתמשו ב-JULIANDAY(end) - JULIANDAY(start) והשתמשו ב-ROUND() כדי לעגל למספרים שלמים.

נסו בעצמכם

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: SQL אונליין