Cara Bekerja Secara Efektif Dengan Tanggal dan Waktu di MySQL

Cara Bekerja Secara Efektif Dengan Tanggal dan Waktu di MySQL

Tanggal dan waktu penting, mereka membantu menjaga segala sesuatunya tetap teratur, dan merupakan aspek integral dari operasi perangkat lunak apa pun.





Bekerja secara efisien dengan mereka dalam database terkadang tampak membingungkan, apakah itu bekerja di berbagai zona waktu, menambah/mengurangi tanggal, dan operasi lainnya.





Pelajari berbagai fungsi MySQL yang tersedia untuk menangani dan mengelola tanggal/waktu dengan mudah dalam database Anda.





Bekerja Dengan Zona Waktu

Untuk membantu menjaga segala sesuatunya tetap standar, Anda hanya boleh bekerja dengan tanggal / waktu dalam zona waktu UTC. Setiap kali Anda membuat koneksi ke database MySQL, Anda harus mengalihkan zona waktu ke UTC, yang dapat dilakukan dengan pernyataan SQL berikut:

SET TIME_ZONE = '+0:00'

Karena semua tanggal sekarang akan disimpan dalam UTC, Anda selalu tahu apa yang sedang Anda kerjakan, membuat segalanya lebih sederhana dan mudah.



dapatkah whatsapp mengirim sms ke non pengguna

Bila perlu Anda dapat dengan mudah mengubah zona waktu nilai datetime / timestamp apa pun dengan praktis CONVERT_TZ() fungsi MySQL. Anda perlu mengetahui offsetnya terlebih dahulu, misalnya PST di pantai barat Amerika Utara adalah UTC -8:00, jadi Anda bisa menggunakan:

SELECT CONVERT_TZ('2021-02-04 21:47:23', '+0:00', '-8:00');

Hal ini mengakibatkan 2021-02-04 13:47:23 yang persis benar. Tiga argumen diteruskan ke CONVERT_TZ() adalah yang pertama tanggal/stempel waktu yang Anda mulai (gunakan sekarang () untuk waktu saat ini), yang kedua akan selalu '+0: 00' karena semua tanggal dipaksa ke UTC dalam database, dan yang terakhir adalah offset yang ingin kita ubah menjadi tanggal.





Tambah / Kurangi Tanggal

Sering kali Anda perlu menambah atau mengurangi tanggal, seperti jika Anda perlu mengambil catatan dari seminggu yang lalu, atau menjadwalkan sesuatu sebulan dari sekarang.

Untungnya MySQL memiliki yang sangat baik TANGGAL_TAMBAH() dan TANGGAL_SUB () fungsi membuat tugas ini sangat mudah. Misalnya, Anda dapat mengurangi dua minggu dari tanggal saat ini dengan pernyataan SQL:





SELECT DATE_SUB(now(), interval 2 week);

Jika sebaliknya Anda ingin menambahkan tiga hari ke stempel waktu yang ada, Anda akan menggunakan:

SELECT DATE_ADD('2021-02-07 11:52:06', interval 3 day);

Kedua fungsi bekerja sama, argumen pertama adalah stempel waktu yang Anda gunakan untuk memulai, dan argumen kedua adalah interval untuk menambah atau mengurangi. Argumen kedua selalu diformat sama dimulai dengan kata selang diikuti dengan nilai numerik dan interval itu sendiri, yang dapat berupa salah satu dari berikut ini: detik, menit, jam, hari, minggu, bulan, kuartal, tahun.

Contoh lain, jika Anda ingin mengambil semua login yang terjadi dalam 34 menit terakhir, Anda dapat menggunakan pernyataan SQL seperti:

SELECT * FROM logins WHERE login_date >= DATE_SUB(now(), interval 45 minute);

Seperti yang Anda lihat, ini akan mengambil semua catatan dari login tabel dengan tanggal login lebih besar dari waktu sekarang dikurangi 45 menit, atau dengan kata lain, 45 menit terakhir.

Dapatkan Perbedaan Antara Tanggal

Terkadang Anda perlu mengetahui berapa banyak waktu yang telah berlalu antara dua tanggal. Anda dapat dengan mudah mendapatkan jumlah hari antara dua tanggal yang berbeda dengan TANGGAL fungsi, seperti pernyataan SQL di bawah ini:

SELECT DATEDIFF(now(), '2020-12-15');

NS TANGGAL function mengambil dua argumen, keduanya adalah cap tanggal / waktu dan memberikan jumlah hari di antara keduanya. Contoh di atas akan menunjukkan jumlah hari yang telah berlalu dari tanggal 15 Desember 2020 hingga hari ini.

Untuk mendapatkan jumlah detik antara dua tanggal, TO_SECONDS() fungsi dapat berguna, misalnya:

SELECT TO_SECONDS(now()) - TO_SECONDS('2021-02-05 11:56:41');

Ini akan menghasilkan jumlah detik antara dua tanggal yang disediakan.

Ekstrak Segmen Dari Tanggal

Ada berbagai fungsi MySQL yang memungkinkan Anda dengan mudah mengekstrak segmen tertentu dari tanggal, seperti jika Anda hanya menginginkan bulan, hari dalam setahun, atau jam. Berikut adalah beberapa contoh fungsi tersebut:

SELECT MONTH('2021-02-11 15:27:52'); SELECT HOUR(now()); SELECT DAYOFYEAR('2021-07-15 12:00:00');

Pernyataan SQL di atas akan menghasilkan 02 , jam saat ini, dan 196 karena 15 September adalah hari ke 196 dalam setahun. Berikut daftar semua fungsi ekstraksi tanggal yang tersedia, masing-masing hanya mengambil satu argumen, tanggal diekstraksi dari:

- SECOND()
- MINUTE()
- HOUR()
- DAY()
- WEEK() - Number 0 - 52 defining the week within the year.
- MONTH()
- QUARTER() - Number 1 - 4 defining the quarter of the year.
- YEAR()
- DAYOFYEAR() - The day of the year (eg. Sept 15th = 196).
- LAST_DAY() - The last day in the given month.
- DATE() - The date in YYYY-MM-DD format without the time.
- TIME() The time in HH:II:SS format without the date.
- TO_DAYS() - The number of days since A.D. 0.
- TO_SECONDS() - The number of seconds since A.D. 0.
- UNIX_TIMESTAMP() - The number of seconds since the epoch (Jan 1st, 1970)

Misalnya, jika mungkin Anda hanya ingin mengambil bulan dan tahun di mana semua pengguna dibuat, Anda dapat menggunakan pernyataan SQL seperti:

SELECT id, MONTH(created_at), YEAR(created_at) FROM users;

Ini akan mengambil semua catatan dalam pengguna tabel dan tunjukkan id#, bulan dan tahun setiap pengguna dibuat.

Mengelompokkan Catatan berdasarkan Periode Tanggal

Salah satu penggunaan fungsi tanggal yang sangat baik adalah kemampuan untuk mengelompokkan catatan berdasarkan periode tanggal menggunakan KELOMPOK OLEH dalam pernyataan SQL Anda. Misalnya, mungkin Anda ingin menarik jumlah total semua pesanan di tahun 2020 yang dikelompokkan berdasarkan bulan. Anda bisa menggunakan pernyataan SQL seperti:

SELECT MONTH(created_at), SUM(amount) FROM orders WHERE created_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH(created_at);

Ini akan mengambil semua pesanan yang dilakukan pada tahun 2020, mengelompokkannya berdasarkan bulan pembuatannya, dan mengembalikan 12 catatan yang menunjukkan jumlah total yang dipesan setiap bulan dalam setahun.

Harap dicatat, untuk kinerja indeks yang lebih baik, selalu yang terbaik adalah menghindari penggunaan fungsi tanggal seperti TAHUN() dalam klausa WHERE dari pernyataan SQL, dan sebagai gantinya gunakan DI ANTARA operator seperti yang ditunjukkan pada contoh di atas.

Jangan Bingung Dengan Tanggal Lagi

Dengan menggunakan pengetahuan di atas, Anda sekarang dapat bekerja dengan efisien, menerjemahkan, dan melakukan operasi pada tanggal dan waktu dalam beragam kasus penggunaan.

Ingatlah untuk selalu menggunakan UTC saat bekerja dengan tanggal untuk kesederhanaan, dan manfaatkan tip di atas untuk mengelola tanggal secara efisien dalam perangkat lunak Anda, apakah itu untuk menyelesaikan perhitungan sederhana atau dengan mudah menarik laporan yang dikelompokkan berdasarkan periode tanggal.

Jika Anda agak baru dalam SQL, pastikan untuk memeriksa ini perintah SQL penting untuk membantu meningkatkan penggunaan SQL Anda.

Membagikan Membagikan Menciak Surel Cara Membuat Laporan dan Dokumen Profesional di Microsoft Word

Panduan ini memeriksa elemen laporan profesional dan meninjau penataan, gaya, dan penyelesaian dokumen Anda di Microsoft Word.

Baca Selanjutnya
Topik-topik yang berkaitan Tentang Penulis Matt Dizak(18 Artikel Diterbitkan) More From Matt Dizak

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan