MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Cara Mengatur Zona Waktu Bernama di MariaDB

Jika Anda ingin menggunakan zona waktu bernama di MariaDB, Anda harus memastikan zona waktu tersebut telah dikonfigurasi.

Dengan “bernama zona waktu”, maksud saya dapat menggunakan string seperti America/Los_Angeles bukannya −08:00 atau −07:00 saat menentukan zona waktu. Misalnya, saat menggunakan CONVERT_TZ() fungsi.

Berikut cara mengonfigurasi zona waktu bernama di MariaDB.

Tabel Zona Waktu

MariaDB memiliki tabel zona waktu berikut di mysql basis data:

  • time_zone
  • time_zone_leap_second
  • time_zone_name
  • time_zone_transition
  • time_zone_transition_type

Secara default, tabel ini dibuat, tetapi tidak diisi.

Untuk menggunakan zona waktu bernama, Anda perlu mengisi tabel ini. Metode untuk melakukan ini akan tergantung pada sistem Anda (yaitu apakah sistem Anda benar-benar berisi info zona waktu atau tidak).

Sistem Mirip Unix

Alasan mengapa tabel zona waktu di atas kosong secara default adalah karena biasanya lebih baik sistem menangani zona waktu, jika memungkinkan.

Kebanyakan sistem mirip Unix seperti Linux, Mac OS X, FreeBSD, dan Solaris memiliki database zoneinfo. Database zoneinfo ini dapat dimuat ke dalam tabel zona waktu di MariaDB dengan mysql_tzinfo_to_sql utilitas.

Jika sistem Anda berisi database zoneinfo, sebaiknya Anda menggunakan metode ini untuk mengisi tabel zona waktu. Jika tidak, Anda dapat menyebabkan perbedaan dalam penanganan datetime antara MariaDB dan aplikasi lain di sistem Anda.

Untuk memuat tabel zona waktu, buka jendela terminal dan jalankan perintah berikut:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Masukkan kata sandi untuk root pengguna. Jika Anda mendapatkan kesalahan “akses ditolak”, lihat perbaikan ini.

Itu dia. Tabel zona waktu sekarang harus diisi.

Dalam kasus saya, saya mendapat satu peringatan:

Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.

Peringatan ini dapat diabaikan dengan aman.

Peringatan ini mungkin karena fakta bahwa sistem mirip Unix tidak menyertakan detik kabisat. Artinya, sistem mirip Unix tidak memiliki cara untuk mewakili detik kabisat dalam bentuk 23:59:60 . Sebaliknya itu hanya menggunakan detik yang sama dua kali.

Ini mematuhi standar POSIX (Portable Operating System Interface), yang mengharuskan detik kabisat dihilangkan dari waktu yang dilaporkan.

Windows, Sistem HP-UX

Beberapa sistem, seperti Windows dan HP-UX tidak memiliki database zoneinfo, jadi Anda perlu memuat tabel zona waktu melalui skrip SQL jika Anda menggunakan sistem operasi ini.

Lihat dokumentasi MySQL untuk skrip dan instruksi instalasi.

Periksa Tabel Zona Waktu

Setelah tabel zona waktu diisi, kita dapat menjalankan kueri cepat untuk memeriksa apakah tabel tersebut benar-benar terisi.

Contoh:

SELECT * 
FROM mysql.time_zone_name
LIMIT 10;

Hasil:

+--------------------+--------------+
| Name               | Time_zone_id |
+--------------------+--------------+
| Africa/Abidjan     |            1 |
| Africa/Accra       |            2 |
| Africa/Addis_Ababa |            3 |
| Africa/Algiers     |            4 |
| Africa/Asmara      |            5 |
| Africa/Asmera      |            6 |
| Africa/Bamako      |            7 |
| Africa/Bangui      |            8 |
| Africa/Banjul      |            9 |
| Africa/Bissau      |           10 |
+--------------------+--------------+

Dalam hal ini saya memilih 10 hasil teratas dari time_zone_name meja.

Berikut hitungan lengkapnya:

SELECT COUNT(*) 
FROM mysql.time_zone_name;

Hasil:

+----------+
| COUNT(*) |
+----------+
|      594 |
+----------+

Anda dapat menjalankan tabel lain sesuai kebutuhan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Cara untuk Memeriksa apakah Tabel Ada di MariaDB

  2. Upgrade ke Jira Terbaru dengan Server MariaDB Versi Terbaru

  3. Instal MariaDB di Mac

  4. 4 Cara Menemukan Baris yang Mengandung Huruf Besar di MariaDB

  5. Bagaimana ADDDATE() Bekerja di MariaDB