תאריכים ושעות חשובים, הם עוזרים בשמירת הדברים, ומהווים היבט אינטגרלי של כל פעולת תוכנה.
עבודה יעילה איתם במסד הנתונים יכולה לפעמים להיראות מבלבלת, בין אם זה עובד באזורי הזמן השונים, הוספת / חיסור תאריכים ופעולות אחרות.
למד את הפונקציות השונות של MySQL הזמינות לטיפול וניהול תאריכים / זמנים בקלות במסד הנתונים שלך.
עבודה עם אזורי זמן
כדי לשמור על סטנדרטיזציה של דברים, עליך לעבוד רק עם תאריכים / זמנים באזור הזמן של UTC. בכל פעם שאתה יוצר חיבור למסד הנתונים MySQL, עליך להחליף את אזור הזמן ל- UTC, מה שניתן לעשות עם משפט SQL הבא:
SET TIME_ZONE = '+0: 00'
מכיוון שכל התאריכים יישמרו כעת ב- UTC, אתה תמיד יודע עם מה אתה עובד, מה שהופך את הדברים לפשטניים יותר וישרים קדימה.
במידת הצורך תוכלו בקלות להמיר את אזור הזמן של כל ערך זמן / זמן חותם עם ה- Handy CONVERT_TZ () פונקציית MySQL. עליכם לדעת קודם את ההיסט, למשל, PST בחוף המערבי של צפון אמריקה הוא UTC -08: 00, כך שתוכלו להשתמש ב:
PolyTime, אפליקציה חדשה מבית MakeUseOf, מקלה על השוואה בין אזורי זמן ברחבי העולם. הנה מה שאתה יכול לעשות עם זה ואיך זה עובד.
בחר CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
זו התוצאה 2021-02-04 13:47:23 שזה בדיוק נכון. שלושת הטיעונים הועברו ל CONVERT_TZ () הם הראשון תאריך הזמן / חותמת הזמן שאיתו אתה מתחיל (השתמש עכשיו () בזמן הנוכחי), השני תמיד יהיה '+0:00' מכיוון שכל התאריכים נאלצים לעבור UTC במסד הנתונים, והאחרון הוא הקיזוז שאליו אנו רוצים להמיר את התאריך.
הוספה / חיסור תאריכים
פעמים רבות עליך להוסיף תאריכים או לחסר מהם תאריכים, למשל אם עליך לאחזר רשומות מלפני שבוע, או לתזמן משהו בעוד חודש.
למרבה המזל ל- MySQL יש את המצוין DATE_ADD () ו DATE_SUB () פונקציות המקלות על משימה זו. לדוגמה, באפשרותך להפחית שבועיים מהתאריך הנוכחי באמצעות משפט SQL:
בחר DATE_SUB (עכשיו (), מרווח שבועיים);
אם במקום זאת תרצה להוסיף שלושה ימים לחותמת זמן קיימת, תשתמש:
בחר DATE_ADD ('2021-02-07 11:52:06', מרווח 3 יום);
שתי הפונקציות פועלות זהה, הארגומנט הראשון הוא חותמת הזמן איתה מתחילים, והארגומנט השני הוא מרווח ההוספה או החיסור. הטיעון השני מעוצב תמיד זהה החל מהמילה הַפסָקָה ואחריו ערך מספרי והמרווח עצמו, שיכול להיות אחד מהבאים: שני, דקה, שעה, יום, שבוע, חודש, רבע, שנה.
לדוגמא אחרת, אם ברצונך לאחזר את כל הכניסות שהתרחשו ב -34 הדקות האחרונות תוכל להשתמש במשפט SQL כגון:
בחר * מתוך כניסות WHERE login_date> = DATE_SUB (now (), interval 45 minute);
כפי שאתה יכול לראות, זה יאחזר את כל הרשומות מה- כניסות טבלה עם תאריך כניסה גדול מהזמן הנוכחי מינוס 45 דקות, או במילים אחרות, 45 הדקות האחרונות.
קבל את ההבדל בין תאריכים
לפעמים אתה צריך לקבל כמה זמן שחלף בין שני תאריכים. אתה יכול בקלות להשיג את מספר הימים בין שני תאריכים שונים באמצעות ה- DATEDIFF פונקציה, כגון משפט SQL להלן:
בחר DATEDIFF (עכשיו (), '2020-12-15');
ה DATEDIFF פונקציה לוקחת שני ארגומנטים, שניהם חותמות תאריך / שעה ונותנים את מספר הימים ביניהם. הדוגמה שלעיל תראה את מספר הימים שחלפו החל מה -15 בדצמבר 2020 ועד היום.
כדי לקבל את מספר השניות בין שני תאריכים, ה- TO_SECONDS () פונקציה יכולה להיות שימושית, למשל:
בחר TO_SECONDS (עכשיו ()) - TO_SECONDS ('2021-02-05 11:56:41');
זה יביא למספר השניות בין שני התאריכים שצוינו.
חלץ קטעים מתאריכים
ישנן פונקציות MySQL שונות המאפשרות לך לחלץ קטעים ספציפיים מתאריכים בקלות, כגון אם אתה רק רוצה את החודש, את יום השנה או את השעה. להלן מספר דוגמאות לפונקציות כאלה:
בחר חודש ('2021-02-11 15:27:52');
בחר שעות (עכשיו ());
בחר DAYOFYEAR ('2021-07-15 12:00:00');
הצהרות SQL לעיל יביאו ל 02, השעה הנוכחית, ו 196 מכיוון שה -15 בספטמבר הוא היום ה -196 בשנה. הנה רשימה של כל פונקציות חילוץ התאריכים הזמינות, שכל אחת מהן כוללת ארגומנט אחד בלבד, והתאריך שחולץ ממנו:
- שניה ()
- MINUTE ()
- HOUR ()
יום ()
- שבוע () - מספר 0 - 52 המגדיר את השבוע בתוך השנה.
- חודש ()
- רבע () - מספר 1 - 4 המגדיר את רבע השנה.
- YEAR ()
- DAYOFYEAR () - יום השנה (למשל 15 בספטמבר = 196).
- LAST_DAY () - היום האחרון בחודש הנתון.
- DATE () - התאריך בפורמט YYYY-MM-DD ללא השעה.
- TIME () השעה ב HH: II: פורמט SS ללא התאריך.
- TO_DAYS () - מספר הימים מאז 0 לספירה.
- TO_SECONDS () - מספר השניות מאז 0 לספירה.
- UNIX_TIMESTAMP () - מספר השניות מאז העידן (1 בינואר 1970)
לדוגמא, אם אולי רק רצית לאחזר את החודש והשנה שבהם כל המשתמשים נוצרו, תוכל להשתמש בהצהרת SQL כגון:
בחר מזהה, MONTH (created_at), YEAR (created_at) FROM משתמשים;
זה יאחזר את כל הרשומות בתוך משתמשים טבלה והראה את מספר הזיהוי, החודש והשנה שכל משתמש נוצר בהם.
קיבוץ רשומות לפי תקופת תאריך
שימוש מצוין אחד בפונקציות תאריך הוא היכולת לקבץ רשומות לפי תקופת תאריך באמצעות קבוצה לפי בתוך הצהרות ה- SQL שלך. לדוגמה, אולי ברצונך למשוך את הסכום הכולל של כל ההזמנות בשנת 2020 מקובצות לפי חודש. אתה יכול להשתמש במשפט SQL כגון:
בחר חודש (Created_at), SUM (סכום) מ- ההזמנות WHERE Created_BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH (created_at);
זה יאחזר את כל ההזמנות שבוצעו בשנת 2020, יקבץ אותן לפי החודש שנוצרו, ויחזיר 12 רשומות המציגות את הסכום הכולל שהוזמן בכל חודש בשנה.
שימו לב, לקבלת ביצועי אינדקס טובים יותר, עדיף תמיד להימנע משימוש בפונקציות תאריך כגון שָׁנָה() במסגרת סעיף WHERE של הצהרות SQL, ובמקום זאת השתמש ב- בֵּין כפי שמוצג בדוגמה שלעיל.
לעולם אל תתבלבל שוב עם תאריכים
באמצעות הידע שלעיל תוכלו לעבוד ביעילות, לתרגם ולבצע פעולות בתאריכים ובשעות במגוון רחב של מקרי שימוש.
זכור להשתמש תמיד ב- UTC בעבודה עם תאריכים לפשטות, והיעזר בטיפים לעיל לניהול יעיל תאריכים בתוכנה שלך, בין אם זה כדי להשלים חישובים פשוטים או למשוך בקלות דוחות מקובצים לפי תאריך תקופות.
אם אתה קצת חדש ב- SQL, הקפד לבדוק את אלה פקודות SQL חיוניות כדי לעזור בשיפור השימוש ב- SQL שלך.
מדריך זה בוחן את מרכיבי הדו"ח המקצועי ובודק את המבנה, העיצוב והסיום של המסמך שלך ב- Microsoft Word.
- לא צוין
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
צעד אחד נוסף !!!
אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.