对于MySQL在保存时间信息上的建议
在网上看到有网友说自己最近在和印度的SP在核对统计数据的过程中,发现统计的数据存在时区的问题。本文主要是就以上问题作出的解决。他给对方提供的接口获取指定date的统计结果,是按照中国的时区来控制的。庆幸的是在数据库中存储的是国际时间戳,因此只需要在接口处确定调用方是哪个时区的即可获取正确的统计结果信息。
解决方案参考如下,即在SimpleDateFormat对象基础上需要明确当前需要使用的时区是什么。
SimpleDateFormat.setTimeZone(TimeZone);
// Java: long timeMs = System.currentTimeMillis(); System.out.println("long = " + timeMs); // current time zone SimpleDateFormat default = new SimpleDateFormat("yyyy-MM-dd HH:mm"); System.out.println(default.format(timeMs)); // +8:00 time zone SimpleDateFormat chinaFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); chinaFormat.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); System.out.println("GMT+8:00 = " + chinaFormat.format(timeMs)); // +5:30 time zone SimpleDateFormat indiaFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); indiaFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); System.out.println("GMT+5:30 = " + indiaFormat.format(timeMs));
使用如上方法其实就可以解决时区问题,由于我当时获取统计数据是通过小时表获取的且小时表是一小时一条记录。而印度时区为GMT+5:30,在当前表结构的基础上会存在半小时数据偏差的问题,因此为了解决该问题我们修改小时表的统计粒度为半小时。
总结:
该博客只是简单的说出重点的解决时区的方案,在使用该方案的前提是数据库中存储的是国际时间戳!!!
只有基于绝对时间戳的时间存储,从根本上就没有时区的问题!!!时区只是一个显示问题!!!
每天进步一点点~
【推荐课程:MySQL视频教程】
Atas ialah kandungan terperinci 对于MySQL在保存时间信息上的建议. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Menyalin jadual di MySQL memerlukan membuat jadual baru, memasukkan data, menetapkan kunci asing, menyalin indeks, pencetus, prosedur tersimpan, dan fungsi. Langkah -langkah khusus termasuk: mewujudkan jadual baru dengan struktur yang sama. Masukkan data dari jadual asal ke dalam jadual baru. Tetapkan kekangan utama asing yang sama (jika jadual asal mempunyai satu). Buat indeks yang sama. Buat pencetus yang sama (jika jadual asal mempunyai satu). Buat prosedur atau fungsi yang disimpan yang sama (jika jadual asal digunakan).

Lihat pangkalan data MySQL dengan arahan berikut: Sambungkan ke pelayan: MySQL -U Pengguna Nama -P Kata Laluan Run Show pangkalan data; Perintah untuk mendapatkan semua pangkalan data yang sedia ada Pilih pangkalan data: Gunakan nama pangkalan data; Lihat Jadual: Tunjukkan Jadual; Lihat Struktur Jadual: Huraikan nama jadual; Lihat data: pilih * dari nama jadual;

Navicat untuk MariaDB tidak dapat melihat kata laluan pangkalan data secara langsung kerana kata laluan disimpan dalam bentuk yang disulitkan. Untuk memastikan keselamatan pangkalan data, terdapat tiga cara untuk menetapkan semula kata laluan anda: Tetapkan semula kata laluan anda melalui Navicat dan tetapkan kata laluan yang kompleks. Lihat fail konfigurasi (tidak disyorkan, risiko tinggi). Gunakan alat baris perintah sistem (tidak disyorkan, anda perlu mahir dalam alat baris arahan).

Langkah -langkah untuk melaksanakan SQL di Navicat: Sambungkan ke pangkalan data. Buat tetingkap editor SQL. Tulis pertanyaan SQL atau skrip. Klik butang Run untuk melaksanakan pertanyaan atau skrip. Lihat hasilnya (jika pertanyaan dilaksanakan).

Anda boleh membuat sambungan MySQL baru di Navicat dengan mengikuti langkah -langkah: Buka aplikasi dan pilih Sambungan Baru (Ctrl N). Pilih "MySQL" sebagai jenis sambungan. Masukkan nama host/alamat IP, port, nama pengguna, dan kata laluan. (Pilihan) Konfigurasikan pilihan lanjutan. Simpan sambungan dan masukkan nama sambungan.
