Tanggal dan waktu itu penting, mereka membantu menjaga hal-hal tetap teratur, dan merupakan aspek integral dari operasi perangkat lunak apa pun.
Bekerja secara efisien dengan mereka dalam database terkadang tampak membingungkan, baik 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 terstandarisasi, 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:
SETEL 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.
Bila perlu Anda bisa dengan mudah ubah zona waktu dari nilai datetime / timestamp dengan berguna
CONVERT_TZ () Fungsi MySQL. Perlu anda ketahui dulu offsetnya, misal PST di pantai barat Amerika Utara adalah UTC -08: 00, jadi anda bisa menggunakan:PolyTime, aplikasi baru dari MakeUseOf, memudahkan untuk membandingkan zona waktu di seluruh dunia. Inilah yang dapat Anda lakukan dengannya dan cara kerjanya.
PILIH CONVERT_TZ ('2021-02-04 21:47:23', '+0: 00', '-8: 00');
Ini menghasilkan 2021-02-04 13:47:23 yang mana memang benar. Tiga argumen diteruskan ke CONVERT_TZ () pertama adalah stempel waktu / 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 tanggalnya.
Tambah / Kurangi Tanggal
Sering kali Anda perlu menambah atau mengurangi dari tanggal, seperti jika Anda perlu mengambil rekaman dari seminggu yang lalu, atau jadwalkan sesuatu sebulan dari sekarang.
Untungnya MySQL memiliki keunggulan DATE_ADD () dan DATE_SUB () fungsi membuat tugas ini sangat mudah. Misalnya, Anda dapat mengurangi dua minggu dari tanggal sekarang dengan pernyataan SQL:
PILIH DATE_SUB (sekarang (), interval 2 minggu);
Jika sebaliknya Anda ingin menambahkan tiga hari ke stempel waktu yang ada, Anda akan menggunakan:
PILIH DATE_ADD ('2021-02-07 11:52:06', interval 3 hari);
Kedua fungsi berfungsi sama, argumen pertama adalah stempel waktu yang Anda gunakan untuk memulai, dan argumen kedua adalah interval yang akan ditambahkan atau dikurangi. Argumen kedua selalu diformat sama dimulai dengan kata selang diikuti dengan nilai numerik dan intervalnya, yang dapat berupa salah satu dari berikut ini: detik, menit, jam, hari, minggu, bulan, kuartal, tahun.
Untuk contoh lain, jika Anda ingin mengambil semua login yang terjadi dalam 34 menit terakhir, Anda dapat menggunakan pernyataan SQL seperti:
PILIH * DARI login DI MANA login_date> = DATE_SUB (sekarang (), interval 45 menit);
Seperti yang Anda lihat, ini akan mengambil semua rekaman dari login tabel dengan tanggal masuk lebih besar dari waktu saat ini minus 45 menit, atau dengan kata lain, 45 menit terakhir.
Dapatkan Perbedaan Antara Tanggal
Terkadang Anda perlu mengetahui berapa lama waktu yang telah berlalu antara dua tanggal. Anda bisa dengan mudah mendapatkan jumlah hari antara dua tanggal berbeda dengan DATEDIFF fungsi, seperti pernyataan SQL di bawah ini:
PILIH DATEDIFF (now (), '2020-12-15');
Itu DATEDIFF Fungsi mengambil dua argumen, keduanya adalah stempel 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, file TO_SECONDS () fungsi bisa berguna, misalnya:
SELECT TO_SECONDS (sekarang ()) - TO_SECONDS ('2021-02-05 11:56:41');
Ini akan menghasilkan jumlah detik antara dua tanggal yang diberikan.
Ekstrak Segmen Dari Tanggal
Ada berbagai fungsi MySQL yang memungkinkan Anda mengekstrak segmen tertentu dengan mudah dari tanggal, seperti jika Anda hanya menginginkan bulan, hari dalam setahun, atau jam. Berikut beberapa contoh fungsi tersebut:
PILIH BULAN ('2021-02-11 15:27:52');
PILIH JAM (sekarang ());
PILIH 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 diambil dari:
- KEDUA ()
- MENIT ()
- JAM ()
- HARI()
- MINGGU () - Nomor 0 - 52 mendefinisikan minggu dalam satu tahun.
- BULAN ()
- QUARTER () - Nomor 1 - 4 mendefinisikan kuartal dalam setahun.
- TAHUN ()
- DAYOFYEAR () - Hari dalam setahun (mis. 15 September = 196).
- LAST_DAY () - Hari terakhir di bulan tertentu.
- TANGGAL () - Tanggal dalam format YYYY-MM-DD tanpa waktu.
- WAKTU () Waktu dalam format HH: II: SS tanpa tanggal.
- TO_DAYS () - Jumlah hari sejak A.D. 0.
- TO_SECONDS () - Jumlah detik sejak A.D. 0.
- UNIX_TIMESTAMP () - Jumlah detik sejak periode (1 Jan 1970)
Misalnya, jika mungkin Anda hanya ingin mengambil bulan dan tahun di mana semua pengguna dibuat, Anda dapat menggunakan pernyataan SQL seperti:
PILIH id, MONTH (create_at), YEAR (create_at) DARI pengguna;
Ini akan mengambil semua catatan dalam file pengguna tabel dan menunjukkan id #, bulan dan tahun setiap pengguna dibuat.
Mengelompokkan Catatan berdasarkan Periode Tanggal
Salah satu penggunaan yang sangat baik dari fungsi tanggal adalah kemampuan untuk mengelompokkan catatan berdasarkan periode tanggal menggunakan KELOMPOKKAN OLEH dalam pernyataan SQL Anda. Misalnya, mungkin Anda ingin menarik jumlah total semua pesanan pada tahun 2020 yang dikelompokkan berdasarkan bulan. Anda bisa menggunakan pernyataan SQL seperti:
PILIH BULAN (create_at), JUMLAH (jumlah) DARI pesanan WHERE create_at BETWEEN '2020-01-01 00:00:00' AND '2020-12-31 23:59:59' GROUP BY MONTH (create_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 diperhatikan, untuk kinerja indeks yang lebih baik, sebaiknya hindari penggunaan fungsi tanggal seperti TAHUN() dalam klausa WHERE dari pernyataan SQL, dan sebagai gantinya gunakan ANTARA operator seperti yang ditunjukkan pada contoh di atas.
Jangan Pernah 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 gunakan tip di atas untuk mengelola secara efisien tanggal dalam perangkat lunak Anda, apakah itu untuk menyelesaikan kalkulasi sederhana atau dengan mudah menarik laporan yang dikelompokkan berdasarkan tanggal periode.
Jika Anda baru mengenal SQL, pastikan untuk memeriksanya perintah SQL penting untuk membantu meningkatkan penggunaan SQL Anda.
Panduan ini membahas elemen laporan profesional dan meninjau penataan, gaya, dan penyelesaian dokumen Anda di Microsoft Word.
- Tidak ditentukan
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Satu langkah lagi…!
Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.