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

لا احتاج إلى الوقت في استعمال Sql

بدأه computer53 في 7 أكتوبر 2008 · 17 رد · 2,314 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

بحت كثيرا في هذا المنتدى العزيز علينا وفي الإنترنت كثير ولم أجد مبتغاي.

الأخوة الأعضاء حفظهم الله والمشرفون سؤالي هو:

عندي برنامج إرشيف واستعمله على شبكات ولكن قواعد البيانات على آكسس والأمور حلوة ثم أردنا أن نستخدم البرنامج في مصنع يعني بيانات كثير جدا وحولناه إلى sql وغيرنا بعض التغييرات ولكن وجدنا عقبة التاريخ.

نريد استخدام التاريخ فقط دون الوقت في الاستعراض والحفظ والتعديل ولكن الوقت الموجود في datetime في sql2005 جابلنا المرض!

المطلوب تعليمات sql التي تعطيني التاريخ بدون الوقت أما تعليمة convert استعملها داخل sql حلوة أما داخل البرنامج ودمجها مع التعليمات الداخلية هي المشكلة.

شاكر مقدما للمشرفين والأعضاء

#2

السلام عليكم ورحمة الله

انت تقصد Sql server اليس كذلك

وهل تستطيع ارفاق صورة لواجهة البرنامج وان شاء الله يوفقنا في اجاد الحل

تحياتي

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا

#3

السلام عليكم ورحمة الله وبركاته

انا اشتغل على دلفي 2007 والآن قواعد البيانات MSSql server 2005 .

وإرفاق الصور في واجهة البرنامج وغيره هذه في داخل الفورمز وتستطيع عمل العجب فيه ولكن مشكلة التاريخ هي المشكلة الكبيرة حتى الفورمات للتاريخ داخل sql server مالقيت يعني لازم تحط وقت غصب.

والله ياخي ياريت أحد يشوفلنا حل لهالمشكلة (((((( أريد التاريخ فقط في استعلاماتي ))))))

وشاكر للجميع مقدماً

#4
-- Get current date (without time) as string:
SELECT CONVERT( CHAR(8), GetDate(), 112)

-- Get current date (without time) as date:
SELECT CAST( CONVERT( CHAR(8), GetDate(), 112) AS DATETIME)

GetDate() : column name

Comming Soon

#5

السلام عليكم ورحمة الله وبركاته

شاكر لك اخوي swift وهذه الأوامر جربتها على الـ sql server وزابطة معي لكن مع الاستعلامات اللي في برنامجي كيف أدمج هذا الأمر معها؟

الله لا يهينك في المرفق الداتا حقتي ابغاك تسويلي استعلام واحد (query) فيه الأوامر التالية حسب الداتا مدموجة معها الأمر اللي أعطيتني

select

update

insert

الف شكر لك مقدما وآسف على إزعاجك

data.zip

#6

يا جماعة الخير يا خبراء mssql الأمر بسيط بالنسبة لكم مو معقول قاعدة بيانات من أقوى قواعد البيانات في العالم ما فيه حل للتاريخ وأوضح الأمر أكثر لمن لم أستطيع إفهامه لسؤالي:

الأمر convert لا يُعرض في المواقع التعليمية والكتب إلا بمثال على select وأنا أبغاه في التعديل والإضافة فقط إضافة هذا الأمر دخل الاستعلام حقي!!!؟

مثال في العرض (select) مثلاً :

انظر الصورة التالية :

post-51753-1223730334_thumb.jpg

وفي العرض للأمر فقط ويعطيك حقل وهمي أنظر الوصلة التالية :

post-51753-1223730358_thumb.jpg

وفي دمج الأمر مع تعليمة التعديل في mssql وطبعاً يعطيني خطأ انظر الوصلة التالية:

post-51753-1223730398_thumb.jpg

طبعاً المطلوب تصحيح هذا الأمر على أن تصبح تعليمة mssql صحيحة ويضيفلي التاريخ بدون الوقت بالشكل الموجود بالصورة.

وآسف على الإزعاج مرة أخرى وشاكر لكل من يقدم المساعدة.

تم تغيير موقع الصور, لا ترفع الصور مرة آخرى على موقع خارجي

Wael Dalloul

تم تعديل هذه المشاركة بواسطة Wael Dalloul في 11 أكتوبر 2008 في 16:07

#7

طيب يا جماعة الخير وش الخطأ في التعليمة التالية:

update [arc] 
set arc_no = 1
, file_no = 0001
, maw = 'abdulrahman'
, arc_out = 1
, arc_in = 2
, arc_no_m = 231-2
,arc_date = CONVERT(DATETIME, GETDATE()'20/02/2008',111)
, comp_no = 001
where arc_no = 1

مع العلم أن الحقول الموجودة تابعة لقاعدة البيانات أعلاه

شاكر مقدما

#8

استبدل هذا السطر

,arc_date = CONVERT(DATETIME, GETDATE()'20/02/2008',111)

بالتالى

,arc_date = CONVERT(DATETIME, < column name > ,111)

وأخبرنا بالنتيجة

مع العلم استبدل < column name > بالبديل لديك

تم تعديل هذه المشاركة بواسطة Swift في 10 أكتوبر 2008 في 03:32

Comming Soon

#9

السلام عليكم ورحمة الله وبركاته

شاكر جدا swift لتجاوبك وردك والله انه افرحني أكثر من الجواب.

النتيجة:

يالتالي لا يتغير التاريخ في قاعدة البيانات وهذه النتيجة بالصور حسب الترتيب:

من داخل ms sql تم تجربة التعليمة وكانت النتيجة:

post-51753-1223729892_thumb.jpg

ثم الاستعراض لم يتم إضافة التاريخ الموجود في التعليمة:

post-51753-1223729927_thumb.jpg

ومنن ثم من داخل البرنامج من داخل ADOquery :

post-51753-1223729968_thumb.jpg

ثم بالتالي النتيجة !!!!

post-51753-1223729992_thumb.jpg

ما أدري وش الخطأ أخوي لو تدري التجارب اللي سويتها ، لكن آمل من الله سبحانه وتعالى إنك تتمكن من حلها لي

شاكر قدر تستطيع أن تقول مقدما

تم تغيير موقع الصور, لا ترفع الصور مرة آخرى على موقع خارجي

Wael Dalloul

تم تعديل هذه المشاركة بواسطة Wael Dalloul في 11 أكتوبر 2008 في 16:01

#10

قد يفيدك الرابط

/index.ph...onvert&st=0

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#11

السلام عليكم ورحمة الله وبركاته

هذه الوصلة تفيد المقارنة بين تاريخين وبالتالي نتيجة المقارنة تذهب للتقرير مباشرة ولا ترجع القيمة لقاعدة البيانات يعني (select) ونحن نبحث طريقة تخزين التاريخ في قاعدة البيانات mssql وليس إخراج البيانات منها وأكون لك من الشاكرين إذا تشاركنا في هذا الموضوع. بالنسبة لقاعدة بيانات آكسس جميع تعليمات sql موجودة البحث والمقارنة والتعديل والحفظ وما إلى ذلك ولمن يحتاجها نحن تحت الخدمة.

بارك الله فيك ولجميع أعضاء المنتدى واتمنى من الله أن تنحل هذه المشكلة في هذا المنتدى.

شاكر لكل من يشترك ويقدم المساعدة

#12

أخي الكريم من سوء حظي لا أعرف بـ sql server

لكن بحث على Google و microsoft MSDN و كانت النتيجة

http://msdn.microsoft.com/en-us/library/bb630352.aspx

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

http://weblogs.sqlteam.com/jeffs/archive/2...data-types.aspx

Formatting Dates
Use CONVERT() with date format number, see CONVERT()
select convert(varchar(30), getdate, 104)
--> 19.10.2002
SET DATEFORMAT
Sets the order of the dateparts (month/day/year) for entering datetime or smalldatetime data.
SET DATEFORMAT mdy
GO
DECLARE @datevar smalldatetime
SET @datevar = '12/31/02 12:30:00'
SELECT @datevar
GO
--> 2002-12-31 12:30:00

http://www.akadia.com/services/sqlsrv_prog...matting%20Dates

أرجو أن تجد فيها ما يفيد

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#13

السلام عليكم ورحمة الله وبركاته

شاكر جداً لك والوصلات الموجودة آنفا مرت علي كثير ولم أجد فيها ما أريد مع سهولته.

كل اللي نبغاه إنا نضيف في قاعدة البيانات سواء في التعديل أو الإضافة التاريخ بدون الوقت!!!! والوصلات في السابقة بعضها يتكلم على التعليمة مع فيجوال بيسك والسي شارب وحنا نشتغل على دلفي.

وأشكر مرة أخرى تعاونك معي.

لكن أنا أعرف رجل هنا في هذا المنتدى وعنده منتدى اسمه (عروة) استفدنا منه كثير ما أدري هل الأخ عروة ما زال يشارك في هذا المنتدى؟

أرجو منك يا أخ عروة ان تعطيني حل لهذه المسألة ولا أظنها بعيدة منك.

شاكر مقدماً لكل من شارك وسيشارك وقرأ هذا الموضوع.

#14

أخي الكريم computer53, قم برفع الصور على الموقع هنا و لا تستخدم اي موقع اخر لرفعها, سوف يتم إعادة رفعها هنا مرة أخرى, فهي لا تبقى بعد فترة و بالتالي الموضوع يصبح لا فائدة منه.

لمعرفة كيفية رفع الصور اطلع على الرابط التالي: رفع الصور

اقتباس
ثم الاستعراض لم يتم إضافة التاريخ الموجود في التعليمة:

http://rapidshare.com/files/152548932/002.jpg

اخي الكريم هنا المشكلة أنك استخدمت التابع GetDate() و لم تستخدم اسم الحقل, و هو الذي يعيد تاريخ اليوم لذلك في الصورة ظهر تاريخ اليوم و كان يجب عليك ان تكتبها هكذا:

CONVERT(varchar, GETDATE(),111)

بالنسبة لرسالة الخطأ التي تظهر في الصورة الرابعة فهي على ما أظن بسبب أنك قمت بكتابة اسم الباراميتر بشكل خاطئ(arc_datea), بينما قمت بإضافتها في الكود الذي قمت بتمرير قيمة الباراميتر فيه(arc_date).

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#15

السلام عليكم ورحمة الله وبركاته

شاكر جدا اخوي وائل على مرورك واهتمامك.

بالنسبة للصور إن شاء الله اتعلم كيف تُرفع على مع الموضوع.

أما بالنسبة للتاريخ التابع getdate() يُستخدم في إظهار التاريخ بالشكل المطلوب إذا كان داخل قاعدة البيانات ومضاف معه الوقت وأنا بينت في الصورة أمر select

SELECT [arc_no]
	  ,[file_no]
	  ,[maw]
	  ,[arc_out]
	  ,[arc_in]
	  ,[arc_no_m]
	  ,CONVERT(varchar,GETDATE(),111)[arc_date]
	  ,[comp_no]
  FROM [data].[dbo].[arc]

وهذا مافيه خلاف أما في الـ update لتعديل التاريخ ففي الصورة أنا داخل البرنامج واسم الحقل التاريخ ليس بخطأ وإنما هذه الباراميتر لتتوافق مع ADOquery كما هو الحال في الصورة ومرة أخرى وضعت الـ update من داخل الـ sql server والنتيجة واضحة في نفس الصورة.

اتمنى أخوي وائل شاكرا لك أن تحمل قاعدة البيانات اللي رفعتها وجرب عليها أكيد إن شاء الله إنك راح جيبها.

المطلوب إضافة أو تعديل التاريخ داخل قاعدة البيانات وليس إظهار التاريخ أو مقارنته لأن أيضاً أمر المقارنة لا يأتي إلا بالإظهار (select)

وترى احنا ما تعلمنا إلا من هذا المنتدى بشكل كبير ومن غيره لعدم هضم حق الغير.

وكم أنا فرح بمرورك وشاكر جدا جدا لك.

:P :P :P :D

تم تعديل هذه المشاركة بواسطة computer53 في 11 أكتوبر 2008 في 17:39

#16

شاكر جدا لإضافة الصور

وإذا كنت تريد السورس للقسم المتعلق بتحرير الحقول من إضافة وتعديل وحذف وإظهار فلا بأس بذلك

#17

السلام عليكم ورحمة الله وبركاته

شاكر جدا للذين اشتركوا في هذا الموضوع.

نزلت ms sql server 2008 full وحجمها قرابة 3 جيجا وكسور ووجدت فيها ضالتي وضعوا فيها شيء جديد في تسميات الحقول اسمه DATE وهذه التسمية إن صح التعبير لا تعطيك إلا التاريخ فقط دون الوقت. وهناك ميزات أخرى مثل تحويل التاريخ من هجري إلى ميلادي وإذا أردت إدخال الهجري لا بد أن تستعمل كود مثل

set dateformat dmy

declare @datevar date = '13/10/1429'

وجزاكم الله ألف خير

#18

السلام عليكم ورحمة الله وبركاته

ولأكثر للفائدة :

ولكن هذه المرة ربطت قاعدة بيانات من نوع آكسس بجداول داخل قاعدة بيانات في sql server 2005 وذهبت إلى الخيارات في قاعدة بيانات آكسس واعتمدت التاريخ الهجري وظهرت بالنتيجة المرجوة لكن تحتاج تعلم آكسس أكثر لكي تظهر الشكل المناسب للبرنامج.

ويكون واجهة آكسس وقاعدة بيانات sql server تعمل على الشبكات.

حفظ الله هذا المنتدى ومرتاديه.

شاكر للجميع

تم تعديل هذه المشاركة بواسطة computer53 في 15 أكتوبر 2008 في 16:45

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