Melaksanakan Pertanyaan Waktu Operasi dalam PostgreSQL
Dalam PostgreSQL, anda boleh melakukan pertanyaan untuk mencari semua rekod yang "terbuka" berdasarkan waktu operasi tertentu menggunakan gabungan perbandingan tarikh dan masa. Walau bagaimanapun, pendekatan ini boleh menjadi rumit, terutamanya jika waktu bekerja pada penghujung minggu.
Penyelesaian Cadangan Menggunakan Jenis tsrange
Untuk memudahkan dan mengoptimumkan pertanyaan ini, anda boleh mereka bentuk semula jadual untuk menyimpan waktu buka sebagai satu set nilai tsrange (julat cap waktu tanpa zon waktu). Ini memerlukan PostgreSQL versi 9.2 atau lebih baru dan melibatkan langkah berikut:
Reka Letak Jadual:
Contoh Data:
CREATE TABLE hoo ( hoo_id serial PRIMARY KEY , shop_id int NOT NULL , hours tsrange NOT NULL );
INSERT INTO hoo(shop_id, hours) VALUES (123, '[1996-01-03 18:30, 1996-01-04 05:00]');
Kekangan Pengecualian:
Fungsi Pembantu:
Pertanyaan Dioptimumkan:
Menggunakan struktur jadual baharu dan fungsi pembantu, anda boleh memudahkan pertanyaan anda kepada:
SELECT * FROM hoo WHERE hours @> f_hoo_time(now());
Kebaikan:
Atas ialah kandungan terperinci Bagaimanakah Jenis `tsrange` PostgreSQL Boleh Mengoptimumkan Pertanyaan untuk Waktu Perniagaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!