المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
24-07-2017, 11:54 AM
السلام عليكم
استعمل في تطبيقي دالفي xe5 وقاعدة بيانات firebird و الاتصال عبر مكونات unidac واجهتني مشكلة في التعامل مع تاريخ حيث عند انشاء حقل من نوع date يكون التاريخ بالشكل yyyy/mm/dd و هدا التنسيق لم يعمل عند استعمال استعلام sql حيث يقبل فقط الحقول التي تحتوي التنسيق yyyy.mm.dd و الا تظهر مشكلة .
هل توجد طريقة لجعل التاريخ يسجل في قاعدة البيانات بالتنسيق yyyy.mm.dd فقط ؟؟ ( يمكن استعمال دالة تحول بين التنسيقين لكن ابحث عن حلول اخرى ان امكن)
وشكرا
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
السلام عايكم
ممكن إستعلام الـ SQL المستعمل ؟
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
اوك اخي لؤي تفضل
PHP كود : with DataModule1.filtageExper do begin Close; SQL.Clear;
SQL.Add('select (extract( year from CURRENT_DATE) - extract(year from cast(DATE_NAIS as date)))AS age,NUM_PERS,NOM,PRENOM,DATE_NAIS,ADRESSE,SEX,DATE_INSTA,UNITE,GRADE,NUM_CORP,NOM_COR,NUM_GRA,NOM_GRADE,APP_COR,NUM_SER,NOM_SERV,NOM_UNI,NUM_UNI,APPER_SER'); SQL.Add(' FROM PERSONEL,CORPS,GRADES,SERVICE,UNITE'); SQL.Add(' WHERE (PERSONEL.UNITE=UNITE.NUM_UNI) AND (PERSONEL.GRADE=GRADES.NUM_GRA) AND (SERVICE.NUM_SER=UNITE.APPER_SER) AND (CORPS.NUM_CORP=GRADES.APP_COR) '); Open; end;
المشكل مع الحقل DATE_NAIS يجب ان يكون يحتوي على تاريخ بهدا التنسيق yyyy.mm.dd
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
السلام عليكم
DATE_NAIS هو حقل في القاعدة firebird و يحتوي على تواريخ بشكل yyyy.mm.dd ؟ إن كان كذلك فهو ليس من نوع date ..
http://www.firebirdfaq.org/faq137/
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
كل من 1 user says قال شكرا ل لؤي على المشاركة المفيدة1 user says Thank You to لؤي for this post
• bassem_43
المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
وعليكم السلام
معك حق بعد مراجعة الحقل الدي انشاته كان من نوع نصي والخطا اني كنت اخد التاريخ من المكون tdatetimepicker مباشرة و احفظه في دلك الحقل وبالتالي حدق خطا في الاستعلام .
يجب ايجاد طريقة لتحويل التاريخ من التنسيق DD/MM/YYYY للمكون tdatetimepicker الى التنسيق DD.MM.YYYY افكر في انشاء دالة .
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
25-07-2017, 07:13 PM
(آخر تعديل لهذه المشاركة: 25-07-2017, 09:38 PM بواسطة Admin.)
السلام عليكم
ممكن باستعمال الدالة:
كود : formatdatetime('dd.mm.yyyy',datetimepicker)
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
كل من 1 user says قال شكرا ل لؤي على المشاركة المفيدة1 user says Thank You to لؤي for this post
• bassem_43
المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
و عليكم السلام
بارك الله فيك اخي لؤي كفيتني مشقة كتابة دالة
لقد نجح الامر
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
السلام عليكم
معروف ان الدالة
تحسب الفرق بين تاريخين بالايام مثال :
PHP كود : lbl1.Caption:=IntToStr(RemainingDays(dtp1.Date, dtp2.Date));
لكن حاولت استعمالها في استعلام sql لكن ظهر معي خطا ان الدالة غير معرفة
PHP كود : with DataModule1.filtageExper do begin Close; SQL.Clear; SQL.Add('select (RemainingDays(CURRENT_DATE, DATE_INSTA)))AS experiance,NUM_PERS,NOM,PRENOM,DATE_NAIS,ADRESSE,SEX,DATE_INSTA,UNITE,GRADE,NUM_CORP,NOM_COR,NUM_GRA,NOM_GRADE,APP_COR,NUM_SER,NOM_SERV,NOM_UNI,NUM_UNI,APPER_SER'); SQL.Add(' FROM PERSONEL,CORPS,GRADES,SERVICE,UNITE'); SQL.Add(' WHERE (PERSONEL.UNITE=UNITE.NUM_UNI) AND (PERSONEL.GRADE=GRADES.NUM_GRA) AND (SERVICE.NUM_SER=UNITE.APPER_SER) AND (CORPS.NUM_CORP=GRADES.APP_COR) '); Open; end; end;
حيث اريد حساب الفرق بين تاريخ اليوم و تاريخ التنصيب
PHP كود : DATE_INSTA بالايام لاجدول العمال PERSONEL فما الحل ؟؟
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
المشاركات : 628
المواضيع 72
:
: 211
الإنتساب : Jun 2010
السلام عليكم
ممكن إستعمال الوظيفة datediff :
PHP كود : SELECT datediff (day, date '26-Jun-2017', date '11-Sep-2017') AS DiffDate from rdb$database
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
المشاركات : 543
المواضيع 34
:
: 463
الإنتساب : Apr 2013
وعليكم السلام
شكرا اخي لؤي لم ينجح معي الامر لكن وجدت الحل باستخدام هدا الاستعلام
PHP كود : with DataModule1.filtageExper do begin Close; SQL.Clear; SQL.Add('select TRUNC ( (CAST(CURRENT_DATE AS DATE) - CAST ( DATE_INSTA AS DATE)),0) AS experiance,NUM_PERS,NOM,PRENOM,DATE_NAIS,ADRESSE,SEX,DATE_INSTA,UNITE,GRADE,NUM_CORP,NOM_COR,NUM_GRA,NOM_GRADE,APP_COR,NUM_SER,NOM_SERV,NOM_UNI,NUM_UNI,APPER_SER'); SQL.Add(' FROM PERSONEL,CORPS,GRADES,SERVICE,UNITE'); SQL.Add(' WHERE (PERSONEL.UNITE=UNITE.NUM_UNI) AND (PERSONEL.GRADE=GRADES.NUM_GRA) AND (SERVICE.NUM_SER=UNITE.APPER_SER) AND (CORPS.NUM_CORP=GRADES.APP_COR) ');
Open;
اريد ان اضيف شرطا ان ناخد الخبرة من edit text مثلا الخبرة تساوي 5 سنوات حاولت لكن لم افلح .هل لديك فكرة كيف يكون الاستعلام ؟؟
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
|