Memasukkan Nilai Masa Tarikh Rawak dalam Julat Tertentu dalam MySQL
Memasukkan nilai masa tarikh rawak dalam julat tertentu dalam SQL boleh dicapai dengan cekap. Untuk menggambarkan perkara ini, mari kita teliti contoh yang disediakan.
Julat yang diberikan ialah daripada '2010-04-30 14:53:27' hingga '2012-04-30 14:53:27.' Walau bagaimanapun, pertanyaan yang dicadangkan "INSERT INTO sometable VALUES (RND (DATETIME()))" akan menjana nilai datetime rawak tanpa mengambil kira julat ini.
Untuk menangani ini, pertanyaan berikut boleh digunakan:
INSERT INTO `sometable` VALUES( FROM_UNIXTIME( UNIX_TIMESTAMP('2010-04-30 14:53:27') + FLOOR(0 + (RAND() * 63072000)) ) )
Pertanyaan ini dengan berkesan menukar tarikh asas (2010-04-30 14:53:27) kepada Unix cap masa, kemudian menambah bilangan saat rawak antara 0 dan 2 tahun pada cap masa asas ini. Cap masa yang diubah suai ini kemudiannya ditukarkan semula ke dalam format DATETIME, menjana nilai masa tarikh rawak dalam julat yang ditentukan.
Adalah penting untuk ambil perhatian bahawa walaupun kaedah ini memberikan anggaran hasil yang diingini, kaedah ini mungkin tidak mengambil kira tahun lompat atau pelarasan berkaitan tarikh lain. Untuk tempoh yang lama, disyorkan untuk menggunakan teknik yang lebih halus untuk memastikan ketepatan.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Nilai Datetime Rawak dalam Julat Tertentu dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!