Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hasilkan LocalDate acak dengan Java.time

Cara sederhana adalah dengan mengonversi tanggal minimum dan maksimum ke hari Epoch yang sesuai, menghasilkan bilangan bulat acak di antara kedua nilai tersebut dan akhirnya mengubahnya kembali menjadi LocalDate . Hari epoch diperoleh dengan toEpochDay() yang merupakan hitungan hari sejak 1970-01-01 (ISO).

Masalah dengan menghasilkan tahun acak, lalu bulan dan kemudian hari adalah Anda memiliki peluang kecil untuk jatuh dengan tanggal yang tidak valid (seperti 31 Februari). Selain itu, mengambil hari epoch acak menjamin distribusi yang seragam di semua tanggal yang memungkinkan.

public static void main(String... args) {
    long minDay = LocalDate.of(1970, 1, 1).toEpochDay();
    long maxDay = LocalDate.of(2015, 12, 31).toEpochDay();
    long randomDay = ThreadLocalRandom.current().nextLong(minDay, maxDay);
    LocalDate randomDate = LocalDate.ofEpochDay(randomDay);
    System.out.println(randomDate);
}

Perhatikan bahwa karena tanggal minimum sebenarnya adalah yang pertama, Anda dapat menggantinya dengan 0.

Untuk mengonversi LocalDate ini menjadi java.sql.Date , Anda dapat merujuk ke postingan ini :

java.sql.Date date = java.sql.Date.valueOf(randomDate);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara query banyak-ke-banyak?

  2. Apakah utas koneksi pymysql aman? Apakah utas kursor pymysql aman?

  3. Ekspor database MySQL menggunakan PHP

  4. Mysql - BATAS berdasarkan Persentase?

  5. Menulis file PHP untuk dibaca dari CSV dan menjalankan SQL Query