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

شرح دالة ال Format في ال SQL Server 2012

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

اتقدم لكم بموضوع عن دالة جديدة ومهمة يقدمها لنا ال 2012SQL server

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

هذة الدالة تدعى ال Format وهي من الدوال المهمة في كيفية تقسيم وتصنيف التاريخ او القيم الرقمية بالشكل الذي نريدة اما الصيغة التي تكتب بها هذة الدالة هي كالتالي

FORMAT (value, format [, culture])

لنتعرف على كل براميتر تريدة الدالة لعمل

  1. خاصية ال Value وهي تعني القيمة الرقمية التي سوف نقوم بتشكيلها وتكون اما تاريخ او رقم
  2. اما ال format فهي تعني الصيغة التي سوف تشكل فيها القيمة الرقمية
  3. وهو خيار اختياري مهم لمعرفة 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)]

كما في الصورة التالية

format-1-11.png?w=500

شاهدوا المثال التالي في كيفية تنسيق الوقت

كود 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)]

format-1-2.png?w=500

مثال اخر

كود 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 (#)]

format-1-3.png?w=500

مثال اخر اخواني للتعامل مع المسائل المالية

كود PHP: DECLARE @CURRENCY MONEY = '24500.50';

SELECT FORMAT (@CURRENCY, 'C') AS [RESULT]

حيث ان حرب ف C يعني العملة لاحظوا الصورة التالية

format-1-6.png?w=500

مثال اخر لنرى ابداع هذة الدالة الجديدة

كود 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]

format-1-5.png?w=500

او كما في الكود الاخير والذي فية سوف اصنف الرقم المالي المعطى حسب الثقافات الخاصة بالبلدان

كود 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

format-1-6.png?w=500

او كما في المثال الاخير الذي سوف نصنف فية النتائج بناء على اللغة بدلا@ من ال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]

format-1-7.png?w=500

جربوا ان تغيروا اللغة ال Arabic

وفي النهاية لايسعنا الا ان نقول كم انت كبير يا SQL

دعواتكم اخواني لو اعجبكم المثال

3
1vAO2-d3nY_335990295.gif

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

154047116.gif
#2

بارك الله فيك

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

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

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

قبارك الله فيك وجعله في ميزان حسناتك وزادك من فضله

ملحوظة: ربما يتساءل مستخدموا الإصدارات السابقة من SQL Server ما البديل؟

فيوجد أيضاً بديل مثل وظيفة Convert التى تحول أنواع البيانات إلى أنواع أخرى ويمكن من خلالها تحديد كيفية العرض

المثال التالى يوضح كيفية تحويل حقل نوع تاريخ إلى حقل حرفى مع تحديد نوع العرض بالرقم 111 والذي يعرضه على هيئة dd/MM/yyyy ويمكنك تجربة الاختيارات الأخرى

select convert(nvarchar(13), BirthDate, 111) from employees

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

#4

شكراً لكم وبارك الله فيكم

1vAO2-d3nY_335990295.gif

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

154047116.gif

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