تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
دوال الوقت والتاريخ الجديدة المضافة بـ sql server 2012
#1
السلام عليكم ورحمة الله وبركاته
اعود اليكم اليوم وغايتي هو تسليط الضوء على المستجدات الجديدة في نسخة السيكوال سيرفر 2012 ,ويسعدني بأن اكون اول من اكتب مقال وباللغة العربية عن تلك الميزات .وحتى في المواقع الانكليزية فذكر تلك الخصائص والميزات يكاد يكون قليل,
أمتازت هذه النسخة القادمة بأمكانيات وميزات لربما مميزة في مسار المطورين والذكاء المهني والأدريين (Developer ,Business intelligence,Administrator)
..
ومن هذه الدوال الجديدة المضافة للغة البرمجة T-sql هي دوال التعامل مع الوقت والتاريخ حيث تستخدم للحصول على التاريخ والوقت من خلال اجزاء تجمع وتشكيلها بالصيغة المعروفة,
طيب لربما تتذكر جيدآ اننا كنا نستخدم الدالة Datepart لأستخلاص اجزاء التاريخ والوقت واسنادها لمتغيرات ,الدوال الجديدة تقوم عكس هذه الدالة بالضبط,

دعونا الان نخوض في تلك الدوال الجديدة ونشرحها ونذكر لكل دالة مثال عن كيفية تطبيقها
دالة 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)




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

دالة SMALLDATETIMEFROMPARTS

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,بصراحة منذ اول وهلة وأطلاعي على هذه الدالة اعجبت بها جدآ
حب من اول نظرة او كما نقول بالعراقي (حب من اول بوعة ) ,عالعموم تعتبر هذه الدالة هي دالة حسابية اكثر من هي دالة تعامل مع الوقت حيث تقوم بحساب وايجاد اخر يوم من الشهر بالاعتماد على القيم التي ادخلناها ومررناها للدالة ,الصيغة القياسية لهذه الدالة هي:

الرمز:

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
الرد }}}
تم الشكر بواسطة:
#2
ولكن اعتقد انه لا يوجد فورمات تاريخ هجري ونستخدم nvarchar(50) صحيح كلامي؟؟
microsoft partner
Team administrator
MCPD,MCITP,OCP,MP,MCC
Xprema Systems
الرد }}}
تم الشكر بواسطة:
#3
smss كتب :ولكن اعتقد انه لا يوجد فورمات تاريخ هجري ونستخدم nvarchar(50) صحيح كلامي؟؟

نعم بارك الله فيك للاضافة

هنالك عمليات للتحويل كما في الكود التالي

SELECT NCHAR(8207) + CONVERT(nchar, GETDATE(), 130)
شكراً استاذ كلكامش على المعلومة
الرد }}}
تم الشكر بواسطة:
#4
صح كلامك أخ smss ولكن اتصور ان مشكلة التقويم الهجري قد ذكر حلآ لها في اكثر من مناسبة ^_^ واليوم نحن في صدد الانتقال للسيكوال سيرفر 2012
الرد }}}
تم الشكر بواسطة:
#5
اشكر المراقبين على التثبيت

اتمنى لو يتم نقله لقسم مقالات السيكوال سيرفر
الرد }}}
تم الشكر بواسطة:
#6
لك هذا اخي
تم النقل الى القسم المناسب
microsoft partner
Team administrator
MCPD,MCITP,OCP,MP,MCC
Xprema Systems
الرد }}}
تم الشكر بواسطة:
#7
إقتباس :لك هذا اخي
تم النقل الى القسم المناسب

شكرآ حبيبي smss وكنت اتمنى لو تنقل الحلقة الثانية ايضآ
الرد }}}
تم الشكر بواسطة:
#8
اين هي اخى الكريم
microsoft partner
Team administrator
MCPD,MCITP,OCP,MP,MCC
Xprema Systems
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة عرض الأيام باللغة العربية في استعلام SQL Server ggtt17121985 0 983 12-10-23, 10:22 PM
آخر رد: ggtt17121985
  مساعده في تثبيت SQL Server Owz 1 422 22-09-23, 01:54 AM
آخر رد: Taha Okla
Photo [SQL] رسالة خطأ عند تنصيب sql server 2008 عثمان محمد جبور 2 1,736 07-10-21, 09:02 AM
آخر رد: عثمان محمد جبور
  تاريخ تنصيب ال SQL Server وتاريخ الانتهاء للنسخة ال Evaluation عمر المستشار 1 3,178 21-01-21, 02:00 PM
آخر رد: akrem72
  دورة في برنامج SQL Server 2008 تحت إشراف الاستاذ المهندس أحمد النجار ابو ابراهيم 2 6,320 15-04-20, 06:26 PM
آخر رد: nizar haider
  استفسار حول SQL SERVER MANGER mne3000 1 1,756 05-04-20, 01:21 AM
آخر رد: محمد كريّم
  max From views in sql server nabil.1710 2 2,279 15-01-20, 04:57 AM
آخر رد: EYADISMAIL
  مشكلة في تحميل sql server 2014 انيس القبائلي 0 1,834 09-01-20, 08:22 PM
آخر رد: انيس القبائلي
  [مقال] النسخ الاحتياطي التلقائي - Auto Back Up SQL Server Databases ابو ليلى 5 16,050 24-10-19, 03:43 PM
آخر رد: nouribenyahia
  SQL server tools to build stored procedures Akif 0 2,386 16-05-18, 01:25 PM
آخر رد: Akif

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم