بتاريخ: 12 يونيو 201411 سنة comment_251908 الحالة على افتراض ان لدي جدول يحوي في عموده تواريخ عشوائيه مره هجري ومره ميلادي واريد ان استخرج بياناته من فتره الى فتره STEP 1 CREATE TABLE CONTRACTS(CON_ID NUMBER,OPEN_DATE VARCHAR2(200),PRODUCT_TYPE VARCHAR2(200)) INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 1, '22-04-2014', '10'); INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 2, '01-06-2014', '20'); INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 3, '02-08-1435', '20'); INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 4, '21-06-1435', '10'); INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 5, '30-12-2013', '30'); INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 6, '17-02-1435', '40'); INSERT INTO CONTRACTS ( CON_ID, OPEN_DATE, PRODUCT_TYPE ) VALUES ( 7, '27-02-1435', '40'); COMMIT; STEP 2 CREATE OR REPLACE FUNCTION TO_M (DD VARCHAR2) RETURN VARCHAR2 AS VD VARCHAR2 (50); BEGIN SELECT TO_DATE (DD, 'DD/MM/RRRR', 'NLS_CALENDAR=''ENGLISH HIJRAH''') INTO VD FROM DUAL; RETURN VD; END; --TEST SELECT TO_DATE(TO_M('14/08/1435'),'DD/MM/RRRR') FROM DUAL; والان جرب SELECT * FROM contracts WHERE TO_DATE (open_date, 'DD/MM/RRRR') BETWEEN '01/01/2014' AND '30/06/2014' OR TO_DATE (to_m (open_date), 'DD/MM/RRRR') BETWEEN '01/01/2014' AND '30/06/2014' ويمكن محاولة ادخال بيانات اكثر بإستخدام http://www.al-islam.com/Loader.aspx?pageid=620 لتأكد يرجى ابلاغي في حالة اكتشاف اي اخطاء بالتوفيق تقديم بلاغ
بتاريخ: 13 يونيو 201411 سنة comment_251921 هو ايه الـ ENGLISH HIJRAH ده , مفيش باراميتر اسمه كده ؟ تم تعديل 13 يونيو 201411 سنة بواسطة eslam elbyaly تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.