mohooo81 بتاريخ: 5 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 5 أغسطس 2008 لو سمحتم عايز اعرف اية هواintervel year to monthinterval day to scondعبارة عن اية وباستخدمهم امتى مع مثاااال والحاجات اللى زى time zoneوطبعا الفانكش المتداخلة ازاى اعملها ومغلطش فيها مع امثلة طبعا؟؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 6 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 6 أغسطس 2008 بالنسبة لل Interval فشوف هذا الموضوع :-http://www.araboug.org/ib/index.php?showtopic=28403 [/line]أما ال TimeZone فهى ساعات اليوم التى تقاس بدوران الأرض ، و الوقت يقاس بمكان وجودك على الأرض ، فمثلاً عندما يكون ظهراً فى مدينة ال Greenwich بدولة England - بريطانيا - فأنه يكون ليلاً فى ال the international date line ، و الكرة الأرضية مقسمة على 24 منطقة وقتية ( اى التى تدعى Time Zones و هى المتعارف عليها لغوياً و التى سوف نستخدمها فى هذا الشرح ) أى منطقة وقتية لكل ساعة من ساعات اليوم ، و بمعنى أدق فالمنطقة الوقتية هى منطقة لجزء من 24 جزء من الكرة الأرضية .... كما فى هذه الصورة :-أول بداية وقت الظهر فى ال 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] أتمنى أكون وفقت فى توصيل المعلومة لك ....... مع تمنياتى لك بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.