اتقدم لكم بموضوع عن دالة جديدة ومهمة يقدمها لنا ال 2012SQL server
وهي كيفية تنسيق التاريخ او البيانات الرقمية بالشكل الذي نريد مع امكانيات رائعه
هذة الدالة تدعى ال Format وهي من الدوال المهمة في كيفية تقسيم وتصنيف التاريخ او القيم الرقمية بالشكل الذي نريدة اما الصيغة التي تكتب بها هذة الدالة هي كالتالي
FORMAT (value, format [, culture])
لنتعرف على كل براميتر تريدة الدالة لعمل
- خاصية ال Value وهي تعني القيمة الرقمية التي سوف نقوم بتشكيلها وتكون اما تاريخ او رقم
- اما ال format فهي تعني الصيغة التي سوف تشكل فيها القيمة الرقمية
- وهو خيار اختياري مهم لمعرفة culture الثاقفة التي سوف يبنى عليها التاريخ او القيمة الرقمية (( مهمة جدا)) وميزة رائعه وسوف نتعرف عليها بالامثلة
تابعوا الامثلة
كود PHP: DECLARE @Date AS datetime=Getdate()
Select @Date AS [DATE]
SELECT FORMAT (@Date, 'dd/MM/yyyy') as [Result (dd/MM/yyyy)]
SELECT FORMAT (@Date, 'MM/dd/yyyy') as [Result (MM/dd/yyyy)]
SELECT FORMAT (@Date, 'yyyy/MM/dd') as [Result (yyyy/MM/dd)]
كما في الصورة التالية

شاهدوا المثال التالي في كيفية تنسيق الوقت
كود PHP: DECLARE @TIME AS DATETIME=Getdate()
Select @TIME AS [TIME]SELECT FORMAT (@TIME, 'h:mm:ss tt') as [Result (h:mm:ss tt)]
SELECT FORMAT (@TIME, 'hh:mm:ss tt') as [Result (hh:mm:ss tt)]
SELECT FORMAT (@TIME, 'h:mm:ss') as [Result (h:mm:ss)]
SELECT FORMAT (@TIME, 'hh:mm:ss') as [Result (hh:mm:ss)]

مثال اخر
كود PHP: DECLARE @NUMBER AS NUMERIC(18,4)=12345.789
Select @NUMBER as [NUMBER]
SELECT FORMAT (@NUMBER, '####0.00') as [Result (####0.00)]
SELECT FORMAT (@NUMBER, '####0.000') as [Result (####0.000)]
SELECT FORMAT (@NUMBER, '##,##0.00') as [Result (##,##0.00)]
SELECT FORMAT (@NUMBER, '#') as [Result (#)]

مثال اخر اخواني للتعامل مع المسائل المالية
كود PHP: DECLARE @CURRENCY MONEY = '24500.50';
SELECT FORMAT (@CURRENCY, 'C') AS [RESULT]
حيث ان حرب ف C يعني العملة لاحظوا الصورة التالية

مثال اخر لنرى ابداع هذة الدالة الجديدة
كود PHP: DECLARE @Date AS datetime=Getdate()
Select @Date as [DATE]
SELECT FORMAT ( @Date,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US')
AS [English Culture]
SELECT FORMAT ( @Date,'dddd, MMMM dd, yyyy hh:mm:ss tt','de-DE')
AS [German Culture]
SELECT FORMAT ( @Date,'dddd, MMMM dd, yyyy hh:mm:ss tt','ja-JP')
AS [Japanese Culture]
SELECT FORMAT ( @Date,'dddd, MMMM dd, yyyy hh:mm:ss tt','ar-SA')
AS [Arabic Culture]
SELECT FORMAT ( @Date,'dddd, MMMM dd, yyyy hh:mm:ss tt','ur-PK')
AS [urdu Culture]

او كما في الكود الاخير والذي فية سوف اصنف الرقم المالي المعطى حسب الثقافات الخاصة بالبلدان
كود PHP: DECLARE @CURRENCY MONEY = '24500.50';
SELECT FORMAT (@CURRENCY, 'C','en-US' ) AS [English Culture]
SELECT FORMAT (@CURRENCY, 'C','de-DE' ) AS [German Culture]
SELECT FORMAT (@CURRENCY, 'C','ja-JP' ) AS [Japanese Culture]
SELECT FORMAT (@CURRENCY, 'C','ar-SA' ) AS [Arabic Culture]
SELECT FORMAT (@CURRENCY, 'C', 'ur-PK' ) AS [urdu Culture

او كما في المثال الاخير الذي سوف نصنف فية النتائج بناء على اللغة بدلا@ من الCulther او الثقافة
كود PHP: SET LANGUAGE 'ENGLISH'
SELECT FORMAT (245000, 'C') AS [Currency]SELECT FORMAT (GETDATE(),'D') AS [DATE]
SELECT FORMAT (24500.282, '#,###,###0.00') AS [Currency]

جربوا ان تغيروا اللغة ال Arabic
وفي النهاية لايسعنا الا ان نقول كم انت كبير يا SQL
دعواتكم اخواني لو اعجبكم المثال



