الانتقال إلى المحتوى

ممكن حد يشرحلى كيفية استخدام الفانكشن المتداخلة؟


mohooo81

Recommended Posts

لو سمحتم عايز اعرف اية هوا
intervel year to month
interval day to scond

عبارة عن اية وباستخدمهم امتى مع مثاااال والحاجات اللى زى time zone

وطبعا الفانكش المتداخلة ازاى اعملها ومغلطش فيها مع امثلة طبعا؟؟

رابط هذا التعليق
شارك

بالنسبة لل Interval فشوف هذا الموضوع :-

http://www.araboug.org/ib/index.php?showtopic=28403

[/line]
أما ال TimeZone فهى ساعات اليوم التى تقاس بدوران الأرض ، و الوقت يقاس بمكان وجودك على الأرض ، فمثلاً عندما يكون ظهراً فى مدينة ال Greenwich بدولة England - بريطانيا - فأنه يكون ليلاً فى ال the international date line ، و الكرة الأرضية مقسمة على 24 منطقة وقتية ( اى التى تدعى Time Zones و هى المتعارف عليها لغوياً و التى سوف نستخدمها فى هذا الشرح ) أى منطقة وقتية لكل ساعة من ساعات اليوم ، و بمعنى أدق فالمنطقة الوقتية هى منطقة لجزء من 24 جزء من الكرة الأرضية .... كما فى هذه الصورة :-

time_zone_world_98.jpg

أول بداية وقت الظهر فى ال Greenwich, England يعرف ب Greenwich Mean Time و هو أختصار شهير جداً ل GMT ، و ال GMT هو مقياس معيارى لل Time Zone ...... و بصفة عامة فأن ال Time Zone هو خط الطول الذى يقاس به الوقت للمكان اللى انت فيه .

و يمكنك التحكم فى ال Time Zone بأستخدام ALTER SESSION لتغيره لوضع من 4 أوضاع ....... كالتالى :-

An absolute offset


ALTER SESSION SET TIME_ZONE = '-05:00';



Database time zone

ALTER SESSION SET TIME_ZONE = dbtimezone;



OS local time zone

ALTER SESSION SET TIME_ZONE = local;



A named region

ALTER SESSION SET TIME_ZONE = 'America/New_York';




يعنى مثلاً ظبط الوقت عندك بحيث يبقى ذى ما الوقت فى مصر :-

ALTER SESSION SET TIME_ZONE = '+2:0';



أتأكد بالكود ده :-

SELECT SESSIONTIMEZONE, CURRENT_DATE FROM DUAL;



فى DataType أسمها TIMESTAMP هى Date بس بتظهر الوقت بدقة متناهية ، أستخدمها لمعرفة وقت ال TimeZone عندك :-

SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL;



و لمعرفة قيمة ال TimeZone بتاعة ال Database أكتب التالى :-

SELECT DBTIMEZONE FROM DUAL;



و لمعرفة قيمة ال TimeZone لل Session اللى انت عليه ، أكتب :-

SELECT SESSIONTIMEZONE FROM DUAL;




بالنسبة لل :-

الفانكش المتداخلة


دى سهلة اوى ..... كل ما فى الموضوع ، انك تنظر للكود من جوه مش من بره .... بمعنى :-

SELECT REPLACE (SUBSTR (CONCAT (first_name, last_name), 3, 6), 'i', '@$^#()@') FROM employees;



هنا لما تيجى تبص للكود ، بص الأول على ال :-

CONCAT (first_name, last_name)


لأن دى اخر حاجه من جوه ، لأن الاول هو ال REPLACE و تانى فانكشن ال SUBSTR و تالت واحده والاخيره هى ال CONCAT
و الفانكشن الاخيرة بتربط ما بين الاسم الاول و الاسم الاخير .
اما الفانكشن اللى فى النص اللى هى تانية واحده :-

SUBSTR (CONCAT (first_name, last_name), 3, 6)


فهى بتجيب الناتج بتاع الفينكشن اللى جوه - اللى هو هنا الكلمة الناتجة عن ضم الاسم الاول للموظف مع اسمه الاخير - و من ثم أظهار فقط من اول الحرف الثالث الى الحرف التاسع ، لأن الرقم الاول 3 يعنى ابتدى الاظهار من الحرف الثالث و الرقم الثانى 6 يعنى خد ال 6 أحرف اللى بعد الحرف الثالث .
اما الفينكشن الاولى اللى هى :-

 REPLACE (SUBSTR (CONCAT (first_name, last_name), 3, 6), 'i', '@$^#()@')


فهى بتستبدل ناتج الفينكشن الثانية - SUBSTR - الحرف i بمجموعة هذه الرموز @$^#()@ ....... كل الفكرة انك تحلل الكود او تبنيه من الجوه الاول و بعد كده أطلع لبره .

[line]


أتمنى أكون وفقت فى توصيل المعلومة لك ....... مع تمنياتى لك بالتوفيق
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية