باگ تاریخ شمسی در دیتابیس اوراکل
NLS_CALENDAR اوراکل بصورت Persian تنظیم نشده است. هر بار که بخواهیم اختلافی را بدست آوریم و یا اینکه ماه را کم و زیاد کنیم ملاک عملکردش همان میلادی می باشد. مخصوصا وقتی بخواهیم اختلاف زمانی را بدست آوریم که بین سال کبیسه میلادی می باشد.
سال شمسی دارای ۳۶۵ روز می باشد و در سالهای کبیسه ، معادل ۳۶۶ روز هست.
در این خصوص چند سال پیش سوالی را در فروم اوراکل مطرح کردم که نشان دهنده همین موضوع می باشد
select To_DATE(TO_CHAR(to_date('1390/10/30','yyyy/mm/dd'),'YYYY/MM/DD','nls_calendar=persian'),'YYYY/ MM/DD','nls_calendar=persian') - To_DATE(TO_CHAR(to_date('1389/11/01','yyyy/mm/dd'),'YYYY/MM/ DD','nls_calendar=persian'),'YYYY/MM/DD','nls_calendar=persian') dd from dual
The Result = 364
همانطور که مشاهده می کنید در دیتابیس اوراکل تعداد روزهای یکسال رو برابر 364 روز برگردانده است. علت آن هم این است که این تاریخ ها بین سال کبیسه میلادی قرار گرفته است.
Oracle Forum: https://community.oracle.com/message/12726061#12726061
5/5 - (1 امتیاز)
جستجو
مطالب اخیر
نظرات اخیر
- محمد در تبدیل تاریخ ها در اوراکل
- مجتبی خالقداد در پلاگین کد امنیتی اوراکل اپکس(ای پکس)
- سعید حسن پور در تبدیل تاریخ ها در اوراکل
- حسین در تبدیل تاریخ ها در اوراکل
- مهرسا سعادت در نقشه راه اوراکل APEX برای نسخه بعدی
برچسبها
AOP
APEX
apexrad
captcha
CDN
constraint
ebs
epg
forms
index
injection
iran
iranoug
longtype
Materialized-view
Oracle Application Express
orclapex
performance
Persian Sort
plsql
session
sql
standalone
variable scope
XE
امنیت
اوراکل
اپکس
ایران
ایندکس
ایپکس
بنبست
بهینه ساز
تاریخ شمسی
ترجمه
ترفند
حروف فارسی
داکیومنت
داینامیک
شمسی
مرتب سازی فارسی
نصب
نکته
پلاگین
یونیک