الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دوال الوقت والتاريخ الجديدة المضافة بـ sql server 2012

بدأه كلكامش الألكتروني في 10 يناير 2012 · 11 رد · 4,582 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اعود اليكم اليوم وغايتي هو تسليط الضوء على المستجدات الجديدة في نسخة السيكوال سيرفر 2012 ,ويسعدني بأن اكون اول من اكتب مقال وباللغة العربية عن تلك الميزات .وحتى في المواقع الانكليزية فذكر تلك الخصائص والميزات يكاد يكون قليل,

أمتازت هذه النسخة القادمة بأمكانيات وميزات لربما مميزة في مسار المطورين والذكاء المهني والأدريين (Developer ,Business intelligence,Administrator)

..

ومن هذه الدوال الجديدة المضافة للغة البرمجة T-sql هي دوال التعامل مع الوقت والتاريخ حيث تستخدم للحصول على التاريخ والوقت من خلال اجزاء تجمع وتشكيلها بالصيغة المعروفة,

طيب لربما تتذكر جيدآ اننا كنا نستخدم الدالة Datepart لأستخلاص اجزاء التاريخ والوقت واسنادها لمتغيرات ,الدوال الجديدة تقوم عكس هذه الدالة بالضبط,

دعونا الان نخوض في تلك الدوال الجديدة ونشرحها ونذكر لكل دالة مثال عن كيفية تطبيقها

1- دالة DATEFROMPARTS

هي دالة جديدة اضيفت في النسخة الجديدة من السيكوال سيرفر 2012 ونسخة Denali.لذى اذا لم تكن قد قمت بتنصيب نسخة 2012 فلن تستطيع تطبيق المثال التالي حول كيفية استخدام هذه الدالة

مع العلم ان هذه الدالة هي من الدوال التابعة للنظام,

حيث تقوم بأرجاع التاريخ وبصيغ واجزاءه بعد ان نخصص اليوم والشهر والسنة عبر متغيرات لكل جزء

اي متغير للسنة ومتغير للشهر ومتغير لليوم ,وبعد ذلك تقوم هذه الدالة بتحويل هذه المتغيرات لصيغة

Date مع الملاحظة ان التنسيق سوف يأخذ التنسيق الافتراضي الذي قمت بأعداده على السيرفر

مثال على ذلك اقرء الكود البرمجي التالي

رمز برمجي:

DECLARE 
  @YearPart  INT = 2012
, @MonthPart INT = 06 
, @Daypart   INT = 04 


SELECT DATEFROMPARTS (@YearPart, @MonthPart, @Daypart) AS [ Data Using DATEFROMPARTS Function]
GO

النتائج سوف تظهر التالي

اقتباس
04-06-2012

2-دالة TIMEFROMPARTS

دالة جديدة اضيفت في نسخة السيكوال سيرفر 2012 تقوم بأرجاع الوقت من خلال متغيرات تمثل

اجزاء الوقت مثل ما وضحنا ذلك في المثال السابق ,اما الصيغة القياسية لتلك الدالة فتكون بالشكل التالي

TIMEFROMPARTS (HOUR Part, MINUTE part, SECONDS Part, FRACTIONS, PRECISION)

حيث ان :

1- HOUR Part, MINUTE part, SECONDS Partهي متغيرات او ثوابت تمثل اجزاء الوقت

2- fractions : هي عبارة عن نسب تمثل اجزاء الثواني وحيث انها تعتمد على قيمة PRECISION في تحديد مقدار تلك النسبة

• لو كانت قيمة fractions تساوي 3 وقيمة الــ PRECISION تساوي 1 فسوف تظهر اجزاء الثواني بالشكل التالي 0.3

• لو كانت قيمة fractions تساوي 30 وقيمة الــ PRECISION تساوي 2 فسوف تظهر اجزاء الثواني بالشكل التالي 0.30

• لو كانت قيمة fractions تساوي 300 وقيمة الــ PRECISION تساوي 3 فسوف تظهر اجزاء الثواني بالشكل التالي 0.300

اي نستدل ان PRECISION تمثل عدد الارقام العشرية بعد الفارزة

دعونا نكتب الكود البرمجي التالي لتتضح لنا الدالة

رمز برمجي:

DECLARE 
  @HOURPart    INT = 03
, @MINUTEPart  INT = 33 
, @SECONDSPart INT = 33 


SELECT 
 TIMEFROMPARTS (@HOURPart, @ MINUTEPart, @SECONDSPart, 300, 3) 
 AS [Data Using TIMEFROMPARTS Function]
GO

النتائج التي سوف تظهر لنا هي :

اقتباس
03:33:33.300

3- دالة DATETIMEFROMPARTS

هي عبارة عن دالة جديدة في النسخة الجديدة من السيكوال سيرفر 2012 تقوم بأرجاع التاريخ والوقت عن طريق تمرير لها اجزاءها المطلوبة كما في الدوال السابقة ,الصيغة القياسية لها هي كالتالي

DATETIME2FROMPARTS (YEARPart, MONTHPart, DAYPart, HOURPart, MINUTEPart, SECONDS, MILLISECONDS)

لن يكون هناك الحاجة لذكر الكود البرمجي الخاص بهذه الدالة لأنها واضحة ويمكن ان تجمع الاكواد البرمجية السابقة بهذه الدالة,الفرق الوحيد اننا هنا يجب ان نمرر الـ Milliseconds Parameter

4- دالة DATETIME2FROMPARTS

هي عبارة عن دالة اضيفت في النسخة الجديدة من السيكوال سيرفر 2012 تقوم هذه الدالة بأرجاع الوقت والتاريخ بشكل نوع البيانات

DateTime2 من خلال اسناد لها اجزاء التاريخ والوقت عبر متغيرات او ثوابت , الصيغة القياسية لكتابة هذه الدالة هي

DATETIME2FROMPARTS (YEAR, MONTH, DAY, HOUR, MINUTE, SECONDS, FRACTIONS, PRECISION)

كذلك هنا لن نذكر مثال للكود البرمجي لأن الصيغة واضحة جدآ.

5- دالة SMALLDATETIMEFROMPARTS

دالة جديدة اضيفت في نسخة السيكوال سيرفر 2012 تقوم هذه الدالة بأرجاع الوقت والتاريخ بشكل نوع البيانات

SmallDateTime من خلال اسناد لها اجزاء التاريخ والوقت عبر متغيرات او ثوابت , الصيغة القياسية لكتابة هذه الدالة هي

SMALLDATETIMEFROMPARTS (YEAR, MONTH, DAY, HOUR, MINUTE)

6-دالة DATETIMEOFFSETFROMPARTS

دالة جديدة اضيفت في نسخةالسيكوال سيرفر 2012 تقوم هذه الدالة بأرجاع الوقت والتاريخ بشكل نوع البيانات datetimeoffset

هنا اختلاف بسيط هو اننا سوف نقوم بتمرير متغير جديد يمثل مقدار الـ offset وهو ببساطة يمثل مقدار الفرق بين مناطق الزمن

Time Zone بالساعات والدقايق , الصيغة القياسية لهذه الدالة هي :

DATETIMEOFFSETFROMPARTS (YEARPart, MONTHPart, DAYPart, HOURPart, MINUTEPart, SECONDSPart,
       FRACTIONS, HOUR_OFFSET, MINUTE_OFFSET, PRECISION)

المثال التالي سوف يوضح ذلك وبشكل اكثر دقة.

DECLARE 
  @YEARPart    INT = 2012
, @MONTHPart   INT = 06 
, @DAYPart    INT = 04 
, @HOURPart    INT = 04
, @MINUTEPart  INT = 04
, @SECONDSPart INT = 55 


SELECT 
 DATETIMEOFFSETFROMPARTS (@YEARPart, @MONTHPart, @DAYPart, @HOURPart, @MINUTEPart,@SECONDSPart,300, 3, 30, 3) 
 AS [Retrieved Data Using DATETIMEOFFSETFROMPARTS Function]
GO

النتائج التي سوف تظهر سوف تكون بالشكل التالي

اقتباس
2012-06-04 04:04:55.300 +03:30

7-دالة EOMONTH

دالة جديدة اضيفت في النسخة الجديدة من السيكوال سيرفر 2012,بصراحة منذ اول وهلة وأطلاعي على هذه الدالة اعجبت بها جدآ

حب من اول نظرة او كما نقول بالعراقي (حب من اول بوعة :P) ,عالعموم تعتبر هذه الدالة هي دالة حسابية اكثر من هي دالة تعامل مع الوقت حيث تقوم بحساب وايجاد اخر يوم من الشهر بالاعتماد على القيم التي ادخلناها ومررناها للدالة ,الصيغة القياسية لهذه الدالة هي:

EOMONTH (START_DATE, [, MONTH_TO_ADD ])

كما في المثال البرمجي التالي

DECLARE 
 @STARTDATE DATETIME = GETDATE ()


SELECT EOMONTH (@STARTDATE) AS [This Month Last Day]
SELECT EOMONTH (@STARTDATE, 1) AS [Next Month Last Day]
SELECT EOMONTH (@STARTDATE, -1) AS [Last Month Last Day]
GO

النتائج التي سوف تظهر ستكون بالشكل التالي :

للجملة الاستعلام الاولى :

اقتباس

This Month Last Day

__________________________

2012-01-31 00:00:00.000

لجملة الاستعلام الثانية :

Next Month Last Day
-----------------------
2012-02-29 00:00:00.000

ولجملة الاستعلام الثالثة :

Last Month Last Day
-----------------------
2011-12-31 00:00:00.000

انتهى

تم تعديل هذه المشاركة بواسطة كلكامش الألكتروني في 10 يناير 2012 في 17:52

4

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#2

أخي موضوعك قيم جدا .....بالفعل sql server دائما في تطور :happy:

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#3
اقتباس
أخي موضوعك قيم جدا .....بالفعل sql server دائما في تطور

اشكرك أخي العزيز أكيد السيكوال سيرفر الجميل ما يملك ان يتطور ويتطور ويتطور ^_^

ولربما اطلاق مايكروسوفت نسخة جديدة للتعامل مع السحابية دليل كافي اننا نواكب التطور ونحن في الطريق السليم :D

اني اتحرق شوقآ لأجتياز الامتحان Upgrade MCITP sql server 2012

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#4

اكرمك الله

#5
اقتباس
اكرمك الله

نووووووووورت الموضوع اخي KARIMSOFT

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#6

الله يعطيك العافيه

Just be you But upgrade yourself

#7
اقتباس
الله يعطيك العافيه

ويعافيك ربي لك مني افضل التحايا

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#8

وددت ان اسأل واستفسر على رأيكم هل تودون ان اعد لكم مثل هذه الدروس والخص لكم الجديد في السيكوال سيرفر 2012...حيث اني وجدت نسبة الاقبال ضعيفة جدآ؟

هل هو خلل في الشرح ام ماذا؟

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#9
كلكامش الألكتروني كتب:
<br>وددت ان اسأل واستفسر على رأيكم هل تودون ان اعد لكم مثل هذه الدروس والخص لكم الجديد في السيكوال سيرفر 2012...حيث اني وجدت نسبة الاقبال ضعيفة جدآ؟<br>هل هو خلل في الشرح ام ماذا؟<br>
<br><br>اخي العزيز بارك الله فيك  وكثر من امثالك ونفع بك <br><br>اخي العزيز نحن بشوق لمثل هذه الدورس الجميله  والمفيدة <br><br>تقبل احترامي وتقديري <br><br><br>

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#10

بارك الله فيك

وشكرا جزيلا

و نحن بانتظار شرحك المميز عن الجديد في

اصدار 2012 و يا ريت يكون سلسلة مفصلة ومطولة

واكرر شكري وامتناني

عماد حمدي
العراق _ بغداد

 


https://sites.google.com/site/emadhamdyy/home

#11

أن شاء الله عن قريب سوف ألخص ماهو جديد في السيكوال سيرفر 2012

من مواضيعي

دوال التاريخ والوقت الجديدة المضافة في نسخة السيكوال سيرفر 2012

درس في كيفية التعامل مع خاصية في السيكوال سيرفر Full Text Index

Microsoft Certified Trainer SQL Server Data Base Development & Administrator

Microsoft Certified IT Professional SQL Server Data Base Development & Administrator

#12

شكراً لك يا كلكامش الالكتروني لانك من حببتنا بهذا المنجز الرائع الا وهو السيكوال...وقد تعلمناه على يدك نكن لك كل الود والاحترام يا طيب.....خصوصاً وانك تعيش هذه الايام في وسطنا بين احبابك في ميسان

مواضيع مشابهة