الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التاريخ الهجري في قواعد بيانات MsSQL

مغلق
بدأه Mr.ASP في 16 مايو 2002 · 2 رد · 973 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل يمكنك تحويل التاريخ الميلادي إلى هجري في قواعد بيانات MsSQL ؟

شغل برنامج Query Analyzer و أكتب هذا الكود لترى العجب :

Use TempDb 
IF EXISTS (SELECT name 
	   FROM   sysobjects 
	   WHERE  name = N'temp1' 
	   AND    type = 'U')
    DROP TABLE temp1
GO
Create TABLE temp1(Col DateTime)
GO
Delete From Temp1
GO
Insert INTO temp1 Values (GetDate()-1000)
Insert INTO temp1 Values (GetDate()-800)
Insert INTO temp1 Values (GetDate()-600)
Insert INTO temp1 Values (GetDate()-400)
Insert INTO temp1 Values (GetDate()-200)
Insert INTO temp1 Values (GetDate())
GO
Select Col As MelladiDate,
Convert(nvarchar,Col,130) as HigriDate130, 
Convert(nvarchar,Col,131) as HigriDate131
From temp1
GO

النتيجة :

تاريخ ميلادي تاريخ هجري

08/18/1999 7/05/1420

03/05/2000 30/11/1420

09/21/2000 22/06/1421

04/09/2001 16/01/1422

10/26/2001 9/08/1422

05/14/2002 3/03/1423

الأوقات محذوفة لتنسيق فقط ..

مصدر المعلومة : SQL Server Books Online

#3

حل مجرب وأكيد

أولا :

عرف ال CALENDAR داخل ال VB على انها هجري

CALENDAR=1

ثانيا :

انشئ متغير من النوع التاريخي

DIM BASEDATE AS DATE

BASEDATE = #1/1/1400#

ثالثا :

انشئء داله لتعيد اليك رقم صحيح اذا مررت اليها أي تاريخ هجري

هذا الرقم الصحيح يكون عباره عن عدد الأيام الفرق بين التاريخ المراد حفظه في قاعدة البيانات والتاريخ BASEDATE وذلك باستخدام DATEDIFF

رابعا :

في قاعدة البيانات غير النوع من DATETIME الى (NVARCHAR(10

ثم اضف حقلا آخر من النوع INTEGER

وعند الإضافة أو التعديل مرر التاريخ المراد حفظه الى الداله لتعيد اليك عدد الأيام . ثم احفظه في الحقل INTEGER واحفظ التاريخ كنص في الحقل NVARCHAR

وعند الإستعلام عن تاريخ مرره الى الداله لتعيد اليك الرقم الصحيح الذي ستبحث عنه في قاعدة البيانات

ملحوظة : انا استخدم هذه الطريقة غي كل برامجي

ارجوا الإفاده

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…