Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

امکان استفاده از توابع برای رشته اعداد فارسی در تاریخ #33

Open
okaeiz opened this issue Sep 13, 2022 · 4 comments
Labels

Comments

@okaeiz
Copy link

okaeiz commented Sep 13, 2022

عرض سلام و احترام؛
برای استفاده از تابع GDATESTR - که تاریخ شمسی را به عنوان رشته (string) گرفته و مقدار تاریخ-زمان (datetime) میلادی را به عنوان خروجی تحویل می‌دهد - امکان استفاده از تاریخ فارسی وجود ندارد.
آیا راه حلی برای این مسئله وجود دارد؟

به عنوان مثال، وقتی از تابع به شکل زیر استفاده می‌کنیم، مشکلی ندارد و به درستی کار می‌کند:

SELECT gdatestr("1400/12/12");

اما وقتی همین رشته را به فارسی تحت عنوان آرگومان به تابع می‌دهیم، تابع به درستی کار نمی‌کند.

SELECT gdatestr("۱۴۰۰/۱۲/۱۲");

@zoghal
Copy link
Owner

zoghal commented Dec 3, 2022

درود بر شما
هدف اولیه این پروژه یک مبدل تاریخ از میلادی به شمسی و یکسری توابع کاربردی جهت اعمال شرط گذاری بر روی تاریخ میلادی، اما بر اساس قواعد تاریخ شمسی بود. در ادامه هم دوستان دیگری در این پروژه مشارکت کردند و توابع دیگری مثل شمسی به میلادی رو به این پروژه افزودند.

نیازی که شما به آن اشاره کردید! شدنی است. اما نمی‌دونم تا چقدر کاربردی و بهینه است. به همین خاطر تصمیم گرفتم نسخه ۳ این پروژه رو بر اساس نیاز شما استارت بزنم:

https://github.com/zoghal/PersianDate4MySQL/tree/dev-v3

در این نسخه یک تابع جدید اضافه کردم به نام: NUM_FA2EN() که می‌توانید از آن بصورت زیر استفاده کنید:

SELECT gdatestr(NUM_FA2EN("۱۴۰۰/۱۲/۱۲"));

خوشحال میشم تستش کنید و نتیجه رو هم بهم اطلاع بدید.
باتشکر

@zoghal zoghal added the features label Dec 3, 2022
@okaeiz
Copy link
Author

okaeiz commented Mar 2, 2023

سلام و احترام؛
با تشکر از همراهی و راهنمایی شما. تابعی که به کتابخانه اضافه کردید فوق‌العاده کاربردی و عالی است و به خوبی کار می‌کند.
می‌خواستم خواهش کنم در صورت امکان، تابعی طراحی بفرمایید که حاصل تابع pdate را با ارقام فارسی نشان دهد. این کارکرد برای مواقعی که نیازمند گزارش‌گیری از یک دیتابیس هستیم و قصد داریم این گزارش را در معرض دید عموم افراد قرار دهیم، مفید خواهد بود.
به عنوان مثال:

SELECT pdate(created_at) FROM books;

این استیتمنت، خروجی زیر را تحویل می‌دهد:

1401-12-10 08:33:19

اگر بتوان خروجی فوق را با ارقام فارسی، مثلا چیزی شبیه به رشته‌ی زیر نشان داد عالی است.

۱۴۰۱-۱۲-۱۰ ۰۸:۳۳:۱۹

پی‌نوشت: اگر تصمیم به ایجاد این تابع گرفتید، مشتاقم مراحل این کار را ملاحظه نموده و بیاموزم.

@zoghal
Copy link
Owner

zoghal commented Mar 2, 2023

سلام و احترام؛ با تشکر از همراهی و راهنمایی شما. تابعی که به کتابخانه اضافه کردید فوق‌العاده کاربردی و عالی است و به خوبی کار می‌کند. می‌خواستم خواهش کنم در صورت امکان، تابعی طراحی بفرمایید که حاصل تابع pdate را با ارقام فارسی نشان دهد. این کارکرد برای مواقعی که نیازمند گزارش‌گیری از یک دیتابیس هستیم و قصد داریم این گزارش را در معرض دید عموم افراد قرار دهیم، مفید خواهد بود. به عنوان مثال:

SELECT pdate(created_at) FROM books;

این استیتمنت، خروجی زیر را تحویل می‌دهد:

1401-12-10 08:33:19

اگر بتوان خروجی فوق را با ارقام فارسی، مثلا چیزی شبیه به رشته‌ی زیر نشان داد عالی است.

۱۴۰۱-۱۲-۱۰ ۰۸:۳۳:۱۹

پی‌نوشت: اگر تصمیم به ایجاد این تابع گرفتید، مشتاقم مراحل این کار را ملاحظه نموده و بیاموزم.

سلام مجدد
هر چند با اضافه کردن اینجور فیچر‌ها شدیدا مخالفم، چون مروبط به لایه نمایش است و از طرفی همچین مواردی شدیدا باعث کندی اجرای کوئری می‌شوند،
اما چون استفاده آن اختیاری است، چشم سر فرصت اضافه‌اش میکنم و نسخه جدیدش را ریلیز میکنم.

@okaeiz
Copy link
Author

okaeiz commented Mar 10, 2023

سلام و ارادت؛
من به برنچ dev یک کامیت کردم؛ مورد تایید شما هست؟
اگر زودتر ران بشه عالیه چون شدیدا نیازمندیم.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants