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

Tampilkan hasil terdekat dengan tanggal &waktu saat ini (MySQL &PHP)

Saya akan membuang menggunakan metode tanggal/waktu PHP dan mengandalkan MySQL yang memberikan kueri yang terlihat seperti

SELECT * FROM table_name 
WHERE date > CURRENT_DATE
OR (
    date = CURRENT_DATE
    AND 
    time > CURRENT_TIME
)
ORDER BY date ASC, time ASC LIMIT 1

ATAU memastikan bahwa ia mendapatkan catatan yang benar jika tidak, bagian TIME akan diblokir, yaitu hasil pada pukul 03:00 dari hari berikutnya muncul jika waktu saat ini pukul 06:00

Saya melihat Anda menggunakan nilai stempel waktu di sana sehingga Anda selalu dapat meneruskan numerik tanggal PHP sebagai ganti CURRENT_DATE. Ini akan memberikan skrip akhir

$timestamp_now = strtotime(date('d-m-Y')); //Creates a timestamp of the currect date
$sql = mysql_query('SELECT * FROM table_name 
                    WHERE date > '.$timestamp_now.'
                    OR (
                        date = '.$timestamp_now.'
                        AND 
                        time > CURRENT_TIME
                    )
                    ORDER BY date ASC, time ASC LIMIT 1') or die(mysql_error());
$data = mysql_fetch_array($sql);

Saya akan menyarankan mempertimbangkan untuk mengubah database jika memungkinkan untuk menyimpan hanya sebagai bidang DATETIME MySQL, karena Anda dapat mengubah kueri ini menjadi WHERE datetime > NOW() , tapi itu sepenuhnya terserah Anda. Selalu menemukan penanganan tanggal MySQL lebih logis daripada PHP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL LEFT JOIN menggunakan MAX &GROUP BY pada tabel yang digabungkan?

  2. kerusakan injeksi mysql?

  3. MySQL Memotong hasil saat menggunakan Group_Concat dan Concat

  4. Bagaimana saya bisa membatasi pengguna MySQL ke tabel tertentu?

  5. cara mengubah jalur default mysql (menjadi outfile) jalur csv