• وبلاگ : شايد سخن حق
  • يادداشت : تبديل ساده تاريخ ميلادي به شمسي در SQL Server
  • نظرات : 1 خصوصي ، 28 عمومي
  • چراغ جادو

    نام:
    ايميل:
    سايت:
       
    متن پيام :
    حداکثر 2000 حرف
    كد امنيتي:
      
      
     
    + احمدي 
    در توضيح سوالم بايد بگم: اگه من تاريخ مبدا را 1/1/1394 در نظر بگيرم وقتي يکي يکي به اين تاريخ اضافه بکنم ،بخوام 1/2/1394 را ثبت کنم چکار بايد بکنم؟
    پاسخ

    روش‌هاي متنوعي براي اين كار وجود دارد. اولاً مي‌توانيد اين كار را در لايه برنامه‌نويسي با زباني كه كار مي‌كنيد، Net. يا php مثلاً انجام دهيد كه در آن صورت بايد يك مجموعه INSERT‌ بسازيد و به يك‌باره يا بخش‌بخش اجرا بفرماييد. يا اين‌كه برويد در لايه SQL و يك تابع به زبان T-SQL بنويسيد؛ مبدأ و مقصد را بگيرد و در يك لوپ انداخته، تمام ركوردها را مستقيم بسازد. از سوي ديگر نحوه ذخيره داده تاريخ هم متنوع است. ممكن است بخواهيد يك فيلد (CHAR(10 بسازيد و تاريخ شمسي را در قالب يك رشته ذخيره كنيد، يا ممكن است برويد سراغ smalldatetime و به صورت ميلادي تاريخ را ذخيره كرده و سپس هر بار موقع SELECT‌ كردن آن را دوباره به شمسي باز گردانيد. روشي هم وجود دارد كه با استفاده از كدهاي آماده‌اي كه در اينترنت يافت مي‌شود يك فيلد از نوع تاريخ شمسي در ديتابيس ايجاد كنيد. هر كدام از اين‌ها تكنيك خاص خود را دارد. موارد فوق را بررسي نموده، روش مناسب براي كار خود را بيابيد. موفق باشيد.