PersianDate4MySQL
PersianDate4MySQL copied to clipboard
امکان استفاده از توابع برای رشته اعداد فارسی در تاریخ
عرض سلام و احترام؛ برای استفاده از تابع GDATESTR - که تاریخ شمسی را به عنوان رشته (string) گرفته و مقدار تاریخ-زمان (datetime) میلادی را به عنوان خروجی تحویل میدهد - امکان استفاده از تاریخ فارسی وجود ندارد. آیا راه حلی برای این مسئله وجود دارد؟
به عنوان مثال، وقتی از تابع به شکل زیر استفاده میکنیم، مشکلی ندارد و به درستی کار میکند:
SELECT gdatestr("1400/12/12");
اما وقتی همین رشته را به فارسی تحت عنوان آرگومان به تابع میدهیم، تابع به درستی کار نمیکند.
SELECT gdatestr("۱۴۰۰/۱۲/۱۲");
درود بر شما هدف اولیه این پروژه یک مبدل تاریخ از میلادی به شمسی و یکسری توابع کاربردی جهت اعمال شرط گذاری بر روی تاریخ میلادی، اما بر اساس قواعد تاریخ شمسی بود. در ادامه هم دوستان دیگری در این پروژه مشارکت کردند و توابع دیگری مثل شمسی به میلادی رو به این پروژه افزودند.
نیازی که شما به آن اشاره کردید! شدنی است. اما نمیدونم تا چقدر کاربردی و بهینه است. به همین خاطر تصمیم گرفتم نسخه ۳ این پروژه رو بر اساس نیاز شما استارت بزنم:
https://github.com/zoghal/PersianDate4MySQL/tree/dev-v3
در این نسخه یک تابع جدید اضافه کردم به نام: NUM_FA2EN() که میتوانید از آن بصورت زیر استفاده کنید:
SELECT gdatestr(NUM_FA2EN("۱۴۰۰/۱۲/۱۲"));
خوشحال میشم تستش کنید و نتیجه رو هم بهم اطلاع بدید. باتشکر
سلام و احترام؛ با تشکر از همراهی و راهنمایی شما. تابعی که به کتابخانه اضافه کردید فوقالعاده کاربردی و عالی است و به خوبی کار میکند. میخواستم خواهش کنم در صورت امکان، تابعی طراحی بفرمایید که حاصل تابع pdate را با ارقام فارسی نشان دهد. این کارکرد برای مواقعی که نیازمند گزارشگیری از یک دیتابیس هستیم و قصد داریم این گزارش را در معرض دید عموم افراد قرار دهیم، مفید خواهد بود. به عنوان مثال:
SELECT pdate(created_at) FROM books;
این استیتمنت، خروجی زیر را تحویل میدهد:
1401-12-10 08:33:19
اگر بتوان خروجی فوق را با ارقام فارسی، مثلا چیزی شبیه به رشتهی زیر نشان داد عالی است.
۱۴۰۱-۱۲-۱۰ ۰۸:۳۳:۱۹
پینوشت: اگر تصمیم به ایجاد این تابع گرفتید، مشتاقم مراحل این کار را ملاحظه نموده و بیاموزم.
سلام و احترام؛ با تشکر از همراهی و راهنمایی شما. تابعی که به کتابخانه اضافه کردید فوقالعاده کاربردی و عالی است و به خوبی کار میکند. میخواستم خواهش کنم در صورت امکان، تابعی طراحی بفرمایید که حاصل تابع pdate را با ارقام فارسی نشان دهد. این کارکرد برای مواقعی که نیازمند گزارشگیری از یک دیتابیس هستیم و قصد داریم این گزارش را در معرض دید عموم افراد قرار دهیم، مفید خواهد بود. به عنوان مثال:
SELECT pdate(created_at) FROM books;این استیتمنت، خروجی زیر را تحویل میدهد:
1401-12-10 08:33:19اگر بتوان خروجی فوق را با ارقام فارسی، مثلا چیزی شبیه به رشتهی زیر نشان داد عالی است.
۱۴۰۱-۱۲-۱۰ ۰۸:۳۳:۱۹پینوشت: اگر تصمیم به ایجاد این تابع گرفتید، مشتاقم مراحل این کار را ملاحظه نموده و بیاموزم.
سلام مجدد هر چند با اضافه کردن اینجور فیچرها شدیدا مخالفم، چون مروبط به لایه نمایش است و از طرفی همچین مواردی شدیدا باعث کندی اجرای کوئری میشوند، اما چون استفاده آن اختیاری است، چشم سر فرصت اضافهاش میکنم و نسخه جدیدش را ریلیز میکنم.
سلام و ارادت؛ من به برنچ dev یک کامیت کردم؛ مورد تایید شما هست؟ اگر زودتر ران بشه عالیه چون شدیدا نیازمندیم.