Fungsi MySQL/MariADB untuk menghitung waktu matahari terbit/matahari terbenam berdasarkan tanggal dan garis lintang/bujur.
Implementasi ini didasarkan pada algoritma yang ditemukan di http://web.archive.org/web/20161202180207/http://williams.best.vwh.net/sunrise_sunset_algorithm.htm
Varian yang lebih kuat dapat ditemukan sebagai implementasi fungsi muatan MySQL di bawah lib_mysqludf_astro.
Jalankan kode sunriseset.sql, misalnya
mysql -u <username> -p <yourdb> < SunRiseSet.sql
Hubungi fungsi dengan tanggal, lokasi Anda dan waktu mana yang ingin Anda dapatkan (matahari terbit, matahari terbenam)
Paramaternya adalah:
Tanggal Bunga-Format Tanggal MySQL yyyy-mm-dd
LATITE LATITUDE - Mengapung
Lokasi Longitude - Float
Positif untuk timur dan negatif untuk barat.
Sun's Zenith for Sunrise/Sunset: enum ['resmi', 'sipil', 'bahari', 'astronomi'] atau float
Hasil yang Diinginkan - enum ['Sunrise', 'Sunset']
Ganti latitude 0,0000 dan bujur 0,0000 dengan pengaturan lokal Anda:
-- 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');