وظيفة MySQL/MariaDB لحساب وقت شروق الشمس/غروب الشمس بناءً على التاريخ وخط العرض/خط الطول.
يستند هذا التنفيذ بواسطة الخوارزمية الموجودة على http://web.archive.org/web/20161202180207/http://williams.best.vwh.net/sunrise_sunset_algorithm.htm
يمكن العثور على متغير أكثر قوة كتطبيق للدالة القابلة للتحميل MySQL ضمن lib_mysqludf_astro.
قم بتنفيذ مدونة Sunrisset.sql ، على سبيل المثال
mysql -u <username> -p <yourdb> < SunRiseSet.sql
اتصل بالوظيفة مع التاريخ وموقعك والوقت الذي تريد العودة إليه (شروق الشمس ، غروب الشمس)
المعلمة هي:
تاريخ الفائدة-تنسيق تاريخ mysql yyyy-mm-dd
خط عرض الموقع - تعويم
خط الطول - تعويم
إيجابية للشرق والسلبية للغرب.
Sun's Zenith for Sunrise/Sunset: enum ["رسمي" أو "مدني" أو "بحري" أو "فلكي" أو تعويم
النتيجة المرجوة - التعداد ["شروق الشمس" ، "غروب الشمس"]
استبدل Latitude 0.0000 وخط الطول 0.0000 بإعداداتك المحلية:
-- official sunset/sunrise
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 'official', 'sunset'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 'official', 'sunrise');
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 90+(50/60), 'sunset'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 90.833333333, 'sunrise');
-- civil
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 'civil', 'sunset'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 'civil', 'rise');
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 96, 'sunset'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 96, 'rise');
-- nautical
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 'nautical', 'set'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 'nautical', 'rise');
-- astronomical
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 'astro', 'sunset'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 'astro', 'sunrise');
-- self defined sun horizon level
SELECT system.SunRiseSet(NOW(), 0.0000, 0.0000, 86.2, 'sunset'), system.SunRiseSet(NOW(), 0.0000, 0.0000, 86.2, 'sunrise');