صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 21

الموضوع: س: أنسب نوع حقل للتاريخ والوقت!

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Aug 2004
    المشاركات
    932

    س: أنسب نوع حقل للتاريخ والوقت!



    ماهو أنسب نوع حقل لتخزين التاريخ والوقت في MySQL ??

    وماهي طريقة توليد هذا التاريخ لتخزينه في الحقل في PHP ??





    __________________
    نحن أمة إقرأ التي لا تقرأ




  2. DATETIME لان عمرة اكثر من العام 2032، المبرمج المحترف هو ايضا مبرمج كسول ولا يريد ان يضغط على ازرار اكثر، فالحل هو ()NOW
    اي اذا كان الجدول اسمة topics وله الحقول (id,title,body,post_date)
    فتخزينة في الMySQL هو
    كود PHP:
    mysql_query('insert into topics values (NULL,"'.$title.'","'.$body.'",NOW()'); 






    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  3. #3


    DATETIME لان عمرة اكثر من العام 2032، المبرمج المحترف هو ايضا مبرمج كسول ولا يريد ان يضغط على ازرار اكثر، فالحل هو ()NOW
    اي اذا كان الجدول اسمة topics وله الحقول (id,title,body,post_date)
    فتخزينة في الMySQL هو
    كود PHP:
    mysql_query('insert into topics values (NULL,"'.$title.'","'.$body.'",NOW()'); 
    السلام عليكم
    اخي هيلابي الا تعتقد ان احسن طريق هي تخزين الوقت بدالة time الموجودة في php لسهولة التحقق من الوقت ...

    دالة now الموجودة مع mysql تخزن الوقت بهذه الطريقة
    2008-02-18 08:03:24
    اعتقد ان هناك صعوبة في التحقق من الوقت بهذه الطريقة والله اعلم





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  4. #4
    عضو سوبر نشيط
    تاريخ التسجيل
    Aug 2004
    المشاركات
    932


    hilaby : شكراً على ردك الجميل


    Nadorino : كأني أرى الحل عندك





    __________________
    نحن أمة إقرأ التي لا تقرأ



  5. Nadorino اريد ان ارى حلك، ربما تعرف شيء انا لا اعرفة، شاركنا





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  6. #6
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    - اعتقد الافضل يكون حسب برنامج , احيانا تحتاج فقط السنه ولا تحتاج الوقت او العكس.
    - الافضل في الادء هو اصغرها حجما , بحيث لا يستهلك مساحه عند الفهرسه او التخزين ولا يستهلك موارد عن الترتيب( عباره order by).
    نجد ان TIMESTAMP هو اصغرها حجما ويحتوى على الوقت والتاريخ (4 بايت)
    MySQL AB :: MySQL 5.0 Reference Manual :: 9.5 Data Type Storage Requirements





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .

  7. #7


    Nadorino اريد ان ارى حلك، ربما تعرف شيء انا لا اعرفة، شاركنا
    بل تعرفه ...

    ما قصدته انا, هو ان يتم تخزين الوقت عن طريق دالة
    كود PHP:
    time() 
    في حقل من نوع
    كود:
    varchar(15)
    كود PHP:
    $date=time();
    mysql_query('insert into topics values (NULL,"'.$title.'","'.$body.'",".$date."'); 
    وعند الاستخراج يتم التعامل معه عن طريق دالة date

    كود PHP:
    // $row['date'] = استخراج من القاعدة ...
    // التاريخ كامل
    echo date("Y m d h:m:s",$row['date']);
    echo 
    '<br />';
    // الساعة فقط
    echo date("h:m:s",$row['date']); 
    واسف على هذا التدخل ...





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com



  8. Nadorino معليش المرة هذة انا لا اوافقك في الرأي، الاسباب
    1- الحقل varchar ماهو الا مجموعة من الاحرف characters اي اذا جعلته في هذة الحالة، يمكنك فقط اضهار المعلومة كما هي، بدون اي تعديلات
    2- الحقل varchar العمليات الحسابية فيها بطيئة، لان الMySQL سيصعب عليه عملية البحث في ذالك الحقل و ايضا سيصعب علية عملية الترتيب، لان اكثر برامج قواعد البيانات تتعامل مع التواريخ بنظام الUNIX TIME وهو عدد الثواني من العام 1/1/1970. فاذا اردت مثلا ان تستعلم عن الواضيع بين تواربخ معينة، ستضطر اولا الى تخزين البيانات بهاذة الطريقة "اليوم-الشهر-السنة باربع ارقام"
    الحل
    انا مع الTIMESTAMP ولكن هذا فقط اذا تريد تخزين توقيت حدوث الامر او التاريخ اصدار المقالة مثلا، اما اذا تريد تخزين تاريخ في المستقبل، انا مع الDATETIME في هذة الحالة
    1- لان الMySQL لا يحتاج لاي عمليات اضافية لكي يبحث على التاريخ المعين
    2- الMySQL له عمليات ودوال عديدة تتعلق بالتاريخ، فلماذا لا تستخدمها

    خالد





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  9. #9


    وصلت المعلومة وفقك الله اخي خالد





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com



  10. Nadorino
    اذا تريد اي امثلة برمجية على هذا الموضوع، انا تحت امرك





    __________________
    هلابي افضل المواقع العربية تصميماً
    انصح باستخدام ابونتو

  11. #11


    Nadorino
    اذا تريد اي امثلة برمجية على هذا الموضوع، انا تحت امرك
    حسنا ليستفيد الجميع وانا منهم...





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  12. #12
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    Timestamp هي الطريقة الأمثل لتخزين التاريخ والوقت بشكل كامل،
    يمكنك البحث ضمنها أيضاً بتحديد Range للوقت أو التاريخ الذي تبحث عنه ..
    مع الانتباه إلى رد الأخ ضيف حول طول البيانات المخزنة وتأثيرها على الأداء، هذا يعني أنه عليك دائماً اختيار الحل الأنسب لمشروعك ..

    كلام الأخوة جميل جداً ، وكل الردود مفيدة ما شاء الله ..

    لكن [سؤال] هل يتم تخزين Timestamp في حقل Integer ؟ لاني أستخدم Integer حالياً ولا أعلم إن كان سيحدث مشاكل في المستقبل .. ؟!

    تحياتي، أشرف السمهوري






  13. #13
    عضو سوبر نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    929


    انا ارى ان انسب طريقة لتخزين التاريخ والوقت هو استخدام دالة time()

    ويكون حقلها في قاعدة البيانات int(11)

    طبعاً لما اخزنها بالـ time() اقدر بعدين اختار طريقة عرضي للتاريخ والوقت

    سواء هكذا
    2\2\07
    او 02\02\2007
    او طرق كثيره

    هذا ماعندي





    __________________
    سبحان الله وبحمده ،، سبحان الله العظيم
    تذكر هذه الآيه قبل ان تشارك( مَا يَلْفِظُ مِن قَوْلٍ إِلَّا لَدَيْهِ رَقِيبٌ عَتِيدٌ)

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Aug 2004
    المشاركات
    932


    أنا أشوف أحسن طريقة هي تخزين التاريخ باستخدام ()time في متغير من نوع varchar





    __________________
    نحن أمة إقرأ التي لا تقرأ

  15. #15
    عضو شرف
    تاريخ التسجيل
    Apr 2002
    المشاركات
    1,379


    كما ذكرت وذكر hilaby بشكل مفصل الافضل هو ان يكون نوع الحقل TIMESTAMP ويمكن التحويل بسهوله الى عدد الثواني لكي تخرج الوقت ب date باستخدام دالة UNIX_TIMESTAMP(TIMESTAMP_field) الموجوده في Mysql نفسها , او استخدام FROM_TIMESTAMP(TIMESTAMP_field) لاعادتها بالتنسيق المطلوب مباشره .
    مثال
    كود PHP:
    SELECT UNIX_TIMESTAMP();// 1203507041 
    كود PHP:
    SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %d %m %h:%i:%s %x');//2008-02-20 14:30:41 
    - أشرف السمهوري, طير شلوى ربما يكون افضل من استخدام varchar كنوع , لكن ستفقد ميزة التعامل مع الحقل بدوال التاريخ التى تقدمها mysql لك .
    - Nadorino, مبرمج إنترنت اطلاقا لا يمكن ان يكون تخزين timestamp في حقل varchar صحيح.

    الخلاصه: استخدم حقل TIMESTAMP لتخزين التاريخ والوقت في قاعدة البينات . هل هذا منصف ؟





    __________________
    ضيف الله العتيبي مبرمج حر و مهندس معتمد من زيند (ZCE)
    الاتصال: daif@daif.net او جوال: 0556639884
    الخدمات: تقديم استشارات برمجيه, تطوير بوابات/خدمات إلكترونيه للقطاع العام او الخاص .





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض