آقای linux ممنون از کدها تون - اگه می شه یکم راجع به function ها تون توضیح بدین که هر کدوم چه کار می کنند.
من با روش آقای Linux بیشتر موافق هستم
مثلا من در یک جدولم من 6 تاریخ و 6 ساعت دارم اگه بخوام برای مثال join کنم باید باید چندتا فیلد رو join کنم! در حالی که برای محاسبه باز باید یک سری اعمال رو انجام بدم یعنی نمی تونم فقط با یک کویری کار کنم باید رکورد ها رو تک تک محاسبه کنم و عملیاتی رو انجام بدم که فکر کنم استفاده از روش Linuxبهتر باشه حداقل برای موارد مشابه
یک سری هم به این لینک بزنید من اونجا یک سوالی رو مطرح کردم که زیاد بی ربط با نحوه کار با تاریخ ها نیست (یعنی باید همه حالات ها و اعمالی که قرار صورت بگیره رو بررسی کنیم)
https://barnamenevis.org/showthread.php?t=59036
الان که کد linux رو چک می کردم یک اشتباه خیلی کوچولو پیدا کردم که می گم که اونو تصحیح کنید (البته فکر کنم اشکال تایپی باشه)

CREATE FUNCTION dbo.Persian2Civil(@year int, @month int, @day int)
RETURNS char(10) AS

که بجای 10 باید 20 رو قرار بدید چون خروجی اون از 10 کاراکتر بیشتر هستش