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

Tidak mendapatkan output yang diinginkan setelah menjalankan QoQ

Dalam kueri memori (QoQ) bisa menjadi rumit dalam hal tipe data. Mereka jauh kurang paham tentang konversi tipe data implisit daripada database. Dengan menggunakan date_format MySQL fungsi, Anda sebenarnya mengubah nilai datetime menjadi string . Jadi ketika Anda menjalankan QoQ Anda, CF mungkin benar-benar melakukan string perbandingan, yang akan menghasilkan hasil yang sangat berbeda dari tanggal perbandingan. Bisa menjelaskan mengapa Anda mendapatkan hasil yang salah.

Coba ubah database . Anda kueri untuk mengembalikan nilai datetime alih-alih string:

SELECT 
   COUNT(Timedetail) as Occurances
   , STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
FROM   ....
WHERE  ...

Pembaruan:

Opsi lainnya adalah CAST nilai sebagai DATE dalam QoQ Anda. Itu akan memaksa QoQ untuk melakukan perbandingan tanggal, bukan perbandingan string:

WHERE  CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#" 
                                          cfsqltype="cf_sql_date"> 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memasukkan data ke mysql menggunakan Java

  2. kesalahan:tidak dapat menemukan php_pdo_driver.h saat menginstal pdo_mysql

  3. ALTER TABLE ADD COLUMN butuh waktu lama

  4. Bagaimana cara menetapkan Nilai default untuk Empty($_POST)?

  5. Apa perbedaan antara =null dan IS NULL?