Web uygulaması, API sunucusu, masaüstü programı, tablet veya telefon uygulaması gibi herhangi bir program için saat dilimleriyle çalışmak oldukça yaygın bir görevdir.
Bu yazımda size MySQL ve MariaDB veri tabanı sunucusu üzerinde saat dilimi veritabanlarını nasıl kuracağınızı ve kullanacağınızı göstereceğim. Bu makaledeki adımları CentOS 8 ve Ubuntu 18.04 LTS üzerinde test ettim. Ancak CentOS/RHEL 7+, Ubuntu 18.04+ ve Debian 10+ üzerinde çalışmalıdır. Öyleyse başlayalım.
Temel gereksinimler:
Linux işletim sisteminizde (örn. CentOS/RHEL, Ubuntu/Debian) MySQL veya MariaDB kurulu olmalıdır. MySQL/MariaDB’yi kurmak için yardıma ihtiyacınız varsa, bu konuda birçok makale var. LinuxHint.com hangisini kontrol edebilirsiniz.
Saat dilimi verilerini CentOS/RHEL’e yükleyin:
CentOS/RHEL’de, seyahatim Paket, saat dilimi bilgilerini sağlar. NS seyahatim Paket varsayılan olarak kurulmalıdır.
Şans eseri kurulu değilse, aşağıdaki komutlarla kurabilirsiniz:
$ sudo dnf Öz Cesaret
$ sudo dnf İndirmek seyahatim
Değil: CentOS/RHEL 7’de şunu kullanın: nefis yerine dnf.
Saat dilimi verilerini Ubuntu/Debian’a yükleyin:
Ubuntu/Debian’da, seyahatim Paket, saat dilimi bilgilerini sağlar. NS seyahatim Paket varsayılan olarak kurulmalıdır.
Şans eseri kurulu değilse, aşağıdaki komutlarla kurabilirsiniz:
$ sudo uygun güncelleme
$ sudo uygun İndirmek seyahatim
Saat dilimi verilerini SQL’e dönüştürün:
Saat dilimi verileri şu konumda olmalıdır: /usr/paylaş/bölgebilgisi/ CentOS / RHEL ve Ubuntu / Debian OS dizini.
$ ls/usr/Dahil olmuş/alan bilgisi/
Gördüğünüz gibi, saat dilimi verileri farklı klasörler halinde iyi organize edilmiştir.
İkili saat dilimi veri dosyaları. Bunları doğrudan MySQL / MariaDB veritabanlarıyla kullanamazsınız.
$ kedi/usr/Dahil olmuş/alan bilgisi/Amerika/toronto
İkili saat dilimi verilerini dönüştürmeniz gerekir ( /usr/paylaş/bölgebilgisi/ dizini) kullanarak SQL’e mysql_tzinfo_to_sql bir program.
Saat dilimi verilerini SQL’e dönüştürmek için şunu çalıştırın: mysql_tzinfo_to_sql aşağıdaki gibi:
mysql_tzinfo_to_sql $ /usr/Dahil olmuş/alan bilgisi/>~/zoneinfo.sql
Yeni dosya zoneinfo.sql HOME dizininizde oluşturulmalıdır. Saat dilimi bilgilerini bu dosyadan MySQL/MariaDB veritabanına aktarabilirsiniz.
Saat dilimi verilerini MySQL/MariaDB’ye aktarın:
Saat dilimi bilgilerini şuradan içe aktarabilirsiniz: zoneinfo.sql dosyalamak mysql Veritabanı aşağıdaki gibidir:
kedi $ ~/zoneinfo.sql | sudo mysql –mysql geç mutfak –s
Şimdi MySQL / MariaDB veritabanı kök şifresini girin ve. Saat dilimi bilgisi içe aktarılmalıdır.
MySQL/MariaDB’de varsayılan/genel saat dilimini ayarlayın:
Varsayılan olarak, MySQL/MariaDB için varsayılan/genel saat dilimi işletim sistemi saat dilimine ayarlıdır. İsterseniz farklı bir varsayılan/genel saat dilimi ayarlayabilirsiniz.
Öncelikle, ayarlamak istediğiniz saat diliminin adını bulmanız gerekir. Aşağıdaki SQL deyimini kullanarak mevcut tüm saat dilimi adlarını bulabilirsiniz:
>Seçmek İsim İtibaren mysql.time_zone_name;
İstenen saat dilimi adını aşağıdaki gibi de arayabilirsiniz:
>Seçmek İsim İtibaren mysql.time_zone_name nerede İsim Gibi“%
Artık istediğiniz saat dilimini varsayılan/genel saat dilimi olarak aşağıdaki gibi ayarlayabilirsiniz:
>atamaküresel zaman birimi=“alan > ‘;
İstediğiniz saat dilimi, varsayılan/dünya saat dilimi olarak ayarlanmalıdır.
NS CONVERT_TZ() İşlev, zaman dilimini MySQL/MariaDB’de bir tarih ve saate dönüştürmek için kullanılır.
sözdizimi CONVERT_TZ() İşlev:
CONVERT_TZ(tarih saatVe from_tzVe to_tz)
Burada, from_tz E to_tz Bir saat dilimi adı (örn. Asya/Dhaka, Amerika/New York) veya saat dilimi farkı (örn. +06:00, -02:00) olabilir.
NS tarih saat adaptör from_tz ile birlikte to_tz zaman birimi.
Bilgisayarınızın geçerli zaman damgasını (geçerli tarih ve saat) aşağıdaki SQL deyimiyle yazdırabilirsiniz:
>Seçmekşimdiki zaman dalgası();
Şimdi, bilgisayarınızın geçerli tarih ve saati için saat dilimini ayarlamak istediğinizi varsayalım. Avrupa/Londra. Bunu yapmak için koşabilirsin CONVERT_TZ() Aşağıdaki gibi çalışır:
>Seçmekşimdiki zaman dalgası()yan D _ doğrulukVeCONVERT_TZ(şimdiki zaman dalgası()Ve
@@zaman birimiVe“Avrupa/Londra”)yan DT_Londra;
Gördüğünüz gibi, geçerli tarih ve saatin saat dilimi şuna dönüştürülür: Avrupa/Londra başarılı.
Saat dilimini saat için aşağıdaki gibi belirli bir saate de dönüştürebilirsiniz:
>atama dt=“2001-01-03 11:02:11”;
>Seçmek dtVeCONVERT_TZ(dtVe“Amerika / Panama”Ve“Avrupa/Londra”);
Tablonun tarih ve saat alanları için saat dilimini de dönüştürebilirsiniz. Örnek olarak, bu yazıda basit bir doğum günü tablosu kullanacağım.
Ya da değil doğum günü Tablo aşağıdaki gibidir:
>Yapmak veya yaratmakMasa doğum günü( İsim Farkar(20)ölümsüzlükboşVe
Doğum tarihi Tarihölümsüzlükboş);
NS doğum günü Tabloda sadece iki alan var, İsim E Doğum tarihi Aşağıdaki resimde de görebileceğiniz gibi.
>bir tanım doğum günü;
Şimdi, boş doğum günü verilerini şuraya ekleyin: doğum günü Tablo aşağıdaki gibidir:
>Akrepiçeri doğum günü Değer(“Bob”Ve“1997-10-11 12:11:11”)Ve
(“Alex”Ve‘1987-01-11 01:41:01’)Ve(‘zambak’Ve“2001-01-02 20:11:36”);
İşte sahte doğum günü verileri.
>Seçmek*İtibaren doğum günü;
Artık tüm doğum günü zaman damgaları için saat dilimini ayarlayabilirsiniz. Avrupa/Londra aşağıdaki gibi:
>Seçmek İsimVe Doğum tarihiVeCONVERT_TZ(Doğum tarihiVe @@zaman birimiVe
“Avrupa/Londra”)yan london_birth_timestamp İtibaren doğum günü;
Gördüğünüz gibi, Noel saat dilimleri doğru bir şekilde dönüştürüldü.
İşte MySQL/MariaDB saat dilimleriyle nasıl çalıştığınız. Bu makaleyi okuduğunuz için teşekkürler.
Diğer gönderilerimize göz at
[wpcin-random-posts]
İlk Yorumu Siz Yapın