ورود

View Full Version : تبدیل تواریخ در SQL



CodeMasterX
چهارشنبه 26 اردیبهشت 1386, 23:01 عصر
دوستان به مشکلی برخوردم که داره دیونم میکنه.
تو یکی از برنامه هام من تاریخ ها رو بصورت String و بصورت شمسی ذخیره میکنم.
حالا تو یکی از گزارشات نیاز دارم تا تواریخی رو که با تاریخ شمسی امروز بیشتر از 1 روز فاصله دارن رو نمایش بدم.با دستورات SQL میشه تاریخ ها رو تفریق کرد،برای مثال:



SELECT Field1, SYSDATE - Field2 "DateFidd" FROM TableName



این تابع تاریخ سیستم و تاریخ Field1 رو تفریق میکنه و به اسم DateDiff برمیگردونه.
از اونجایی که من توی برنامم برای محاسبه تواریخ شمسی از تابع DateDiff یا کنترل تاریخ آقای پیام مرادی استفاده میکنم،نمیشه با این تابع خروجی درستی رو بدست آورد.چرا که در این صورت تاریخ های شمسی رو سیستم میلادی فرض میکنه.
دوستان اگر راه حلی دارن که بشه با دستورات SQL در همون ابتدای بازکردن رکوردست همچین محاسبه ای رو انجام داد لطف کنن راهنمایی کنن.
میخوام رکوردهایی رو نشون بدم که با تاریخ شمسی امروز اختلاف دارن.

yavari
پنج شنبه 27 اردیبهشت 1386, 15:04 عصر
سلام

تو یه تریگر اینو تست کنین ، امیدوارم جواب بده !


USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO


موفق باشید

haste asli
پنج شنبه 27 اردیبهشت 1386, 15:26 عصر
سلام
دوست عزیز شما می تونید تو برنامه تون تاریخ فردا را با همان تابعی که دارید به صورت فارسی بدست آورده و این تاریخ را به select به عنوان پارامتر پاس بدید . سپس تاریخهایی را بدست آورید که برابر این تاریخ باشد
select * from TBL where Date =@Start_Date:چشمک:

CodeMasterX
جمعه 28 اردیبهشت 1386, 01:34 صبح
از همکاری دوستان متشکرم.
مشکلم حل شد، باز هم ممنون.