סוג הנתונים 'תאריך/שעה מורחבים' מאחסן מידע על תאריך ושעה והוא דומה לסוג הנתונים 'תאריך/שעה', אך הוא מספק טווח תאריכים גדול יותר, דיוק שברים גבוה יותר ותאימות לסוג התאריך של SQL Server datetime2. בעת ייבוא או קישור של נתוני Access ל- SQL Server, באפשרותך למפות באופן עקבי שדה 'גישה אל תאריך/שעה מורחבים' לעמודה SQL Server datetime2. לקבלת מידע נוסף, ראה datetime2 (Transact-SQL).
אזהרת
בעת יצירת ביטויים ושימוש בפונקציות תאריך/שעה בהתבסס על סוג הנתונים 'תאריך/שעה מורחבים' ב- Access, אתה עלול לאבד את הדיוק בחישובים או להיתקל בבעיות אחרות עם התוצאות. אנו מודעים לבעיה זו ובכוונתנו לתמוך בצורה טובה יותר בביטויים ובפונקציות במהדורה הקרובה. כדי לעקוף את הבעיה, באפשרותך ליצור שאילתת מעבר כדי להשתמש בפונקציות המקבילות של ביטוי ותאריך/שעה של SQL Server Server. לקבלת מידע נוסף, ראה השוואה בין Access SQL ל- SQL Server TSQL.
במאמר זה
| השוואה בין סוגי נתונים של 'תאריך/שעה' ו'תאריך/שעה מורחבים' | שימוש בסוג הנתונים החדש 'תאריך/שעה מורחבים' | שיקולי תאימות לאחור | שימוש בסוג הנתונים 'תאריך/שעה מורחבים' כמחרוזת ב- VBA |
|---|
השוואה בין סוגי נתונים של 'תאריך/שעה' ו'תאריך/שעה מורחבים'
הטבלאות הבאות מסכמות הבדלים חשובים בין שני סוגי הנתונים.
| תכונה | תאריך/שעה | תאריך/שעה מורחבים |
|---|---|---|
| ערך מינימום | 100-01-01 00:00:00 | 0001-01-01 00:00:00 |
| ערך מרבי | 9999-12-31 23:59:59.999 | 9999-12-31 23:59:59.9999999 |
| דיוק | 0.001 שניות | 1 ננו-שניה |
| גודל | נקודה צפה עם דיוק כפול | מחרוזת מקודדת של 42 בתים |
שימוש בסוג הנתונים החדש 'תאריך/שעה מורחבים'
המידע הבא מתאר שיקולי שימוש חשובים.
תצוגת עיצוב טבלה כדי לנצל את טווח הנתונים הרחב והדיוק הגבוה יותר, באפשרותך להוסיף שדה לטבלה של Access. באפשרותך גם להמיר תאריך/שעה לסוג נתונים מורחב של תאריך/שעה בתצוגת עיצוב טבלה. השימוש בסוג נתונים זה כשדה מפתח ראשי נתמך גם הוא. לקבלת מידע נוסף, ראה יצירת טבלה והוספת שדות.
הזנת התאריך והשעה הזנת ערכי תאריך ושעה דומה לסוג הנתונים 'תאריך/שעה', פרט לכך שניתן גם להזין ננו-שנייה של שבר. לדוגמה:
- תבנית ערך: mm/dd/yyyy hh:mm:ss.nnnnnnn
- דוגמה: 06/15/1215 09:25:3.234
אם יש יותר מ-7 ננו-שניות חלקיות, הן מעוגלות ל-7 ספרות. כדי לשלוט בתצוגה של ננו-שניות מספר, פתח את הטבלה, ברצועת הכלים בחר שדות, ובקבוצה עיצוב, בחר תמונת
'הגדל מקומות עשרוניים' או תמונת
'הקטן מספרים עשרוניים'.
עיצוב סוגי הנתונים 'תאריך/שעה' ו'תאריך/שעה מורחבים' משתמשים במחרוזות עיצוב סטנדרטי דומות של 'תאריך כללי', 'תאריך ארוך', 'תאריך בינוני', 'תאריך קצר', 'זמן ארוך', 'שעה בינונית' ו'שעה קצרה ', ושניהם תומכים בעיצוב מותאם אישית. עבור סוג הנתונים 'תאריך/שעה מורחבים', התבניות הסטנדרטיות המבוססות על זמן תומכות גם בדיוק חלקי עבור ננו-שניות. עיצוב סוג הנתונים 'תאריך/שעה מורחבים' מוגדר כברירת מחדל לתבניות 'תאריך כללי ' ו'שעה ארוכה ', והוא פועל בהתאם לאפשרויות שצוינו בהגדרות האזוריות של Windows. באפשרותך גם לשלוט בעיצוב דיוק השברים על-ידי שימוש במאפיין Decimal Places כדי לציין את מספר הספרות מימין לנקודה העשרונית (1-7).
קישור וייבוא בנוסף, ניתן לקשר אל או לייבא ממסדי נתונים בעלי סוג נתונים תואם, כגון סוג הנתונים SQL Server datetime2. מסדי נתונים בגירסה 2014 ואילך של SQL Server נתמכים. סוג הנתונים 'תאריך/שעה מורחבים' מחייב שימוש במנהל התקן ODBC של Microsoft עבור SQL Server 11 ואילך. מומלץ להשתמש ב- Microsoft ODBC Driver 13.1 עבור SQL Server. השימוש ב- OLE DB נתמך גם הוא. לקבלת מידע נוסף, ראה תמיכה בסוג נתונים עבור שיפורי תאריך ושעה של ODBCושימוש בתכונות תאריך ושעה משופרות (OLE DB).
טפסים ודוחות באפשרותך להוסיף את סוג הנתונים 'תאריך/שעה מורחבים' לטופס או לדוח. בטופס, באפשרותך להשתמש בבורר התאריכים ובמסיכת הקלט כדי להזין תאריך עם טווח גדול יותר, אך לא דיוק של שברים עבור ננו-שניות.
תמיכה בביטויים סוג הנתונים 'תאריך/שעה מורחבים' תומך בפונקציות צבירה של SQL ובהערכת ביטויים. לדוגמה, שימוש ב- LoggedDateTime כשדה עם סוג הנתונים 'תאריך/שעה מורחבים':
| משימה | דוגמה | תוצאה |
|---|---|---|
| חיפוש הערך המינימלי | Min(LoggedDateTime) | התאריך והשעה המוקדמים ביותר בטווח |
| חילוץ החודש | Month(LoggedDateTime) | שם החודש, כגון ינואר |
| הוספה ליום אחד | [LoggedDateTime]+1 | יום שלישי יהפוך ליום רביעי |
שיקולי תאימות לאחור
סוג הנתונים 'תאריך/שעה מורחבים' אינו תואם לגירסאות קודמות של Microsoft Access. אם הסוג נמצא בשימוש בטבלת Access מקומית, גירסאות של Access שאינן כוללות תכונה זו לא יוכלו לפתוח את מסד הנתונים.
באפשרותך להפוך את סוג הנתונים 'תאריך/שעה מורחבים' לזמין או ללא זמין לפעולות קישור וייבוא עם האפשרות 'מסד נתונים נוכחי ' של Access תמיכה בסוג נתונים מורחב של תאריך/שעה עבור טבלאות מקושרות/lmported. לקבלת מידע נוסף, ראה הגדרת אפשרויות משתמש עבור מסד הנתונים הנוכחי.
שימוש בסוג הנתונים 'תאריך/שעה מורחבים' כמחרוזת ב- VBA
הדוגמאות הבאות של VBA משתמשות בשיטות DAO כדי להציג, להזין ולהעריך את סוג הנתונים 'תאריך/שעה מורחבים', בהתבסס על הטבלה שלהלן.
| מזהה | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 1/1/2001 |
שם הטבלה: DTETable
סוג נתונים של מזהה: מספור אוטומטי
סוג הנתונים DTEData: תאריך/שעה מורחבים
סוג הנתונים DTData: תאריך/שעה
דוגמה: הצגת התאריך והשעה
הדוגמה הבאה מציגה את התאריך והשעה. התבנית שבה נעשה שימוש היא mm/dd/yyyy hh:mm:ss.nnnnnnn בשעון של 24 שעות. התבנית אינה ניתנת להתאמה אישית.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
Debug.Print rs!DTETable
rs.MoveNext
Loop
תוצאה Access מציג: 01/01/0002 01:01:03.1234567.
דוגמה: הזנת התאריך והשעה
הדוגמה הבאה מזינה את התאריך והשעה באמצעות תבנית מחרוזת. כל תבניות התאריך והשעה הסטנדרטיות נתמכות.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
.AddNew
![DTEData] = "1/1/9999 1:1:1.0123 AM"
![DTData] = #1/1/2001#
.Update
End With
תוצאה Access מוסיף שורה חדשה (מזהה = 2):
| מזהה | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 1/1/2001 |
| 2 | 1/1/9999 1:01:01.0123000 AM | 1/1/2001 |
דוגמה: הערכת ביטוי שאילתה
הדוגמה הבאה משתמשת בפונקציה Day כדי לחלץ את מספר היום משדות התאריך והשעה.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
Debug.Print "The day of the month is: "&rs!day
rs.MoveNext
Loop
תוצאה Access מציג:
היום בחודש הוא: 1
היום בחודש הוא: 1
פונקציות הפועלות עם תאריך/שעה מורחבים בביטויי שאילתה
הפונקציות הבאות פועלות עם Date/Time Extended בביטויי שאילתה:
שנה, חודש, יום בשבוע, יום, שעה, דקה, שניה, DateAdd, DateDiff ו- DatePart.
בנוסף, קיימות גירסאות מורחבות של פונקציות מסוימות שלא ניתן להשתמש בסוג הארגומנט כדי לקבוע שהחישוב אמור להפיק ערך מורחב של תאריך/שעה. אלו הם:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended, ו- TimeExtended.
פונקציות אלה פועלות באותו אופן כמו הפונקציה ללא "מורחב" בסוף, אך מחזירות ערך 'תאריך/שעה מורחבים' במקום ערך 'תאריך/שעה'.
שים לב ש- VBA לא השתנה, שהפונקציות החדשות לא יזוהו בקוד VBA והפונקציות הקיימות לא יפעלו עם ערכי תאריך/שעה מורחבים.
דוגמה
שאילתה מקורית:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
כעת, שנה את DateValue([OrderDate]) ל- DateValueExtended([OrderDate]), פעולה שתתקן את הביטוי הראשון.
שים לב ש- Access אינו מטפל בפונקציה Format עבור עמודות 'תאריך/שעה מורחבים'; באפשרותך פשוט להגדיר את המאפיין 'עיצוב' עבור העמודה.
לכן, אם אתה משתמש ב:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
הגדר את המאפיין 'עיצוב' עבור העמודה השנייה כ'תאריך קצר', תקבל את התוצאות הרצויות.