Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Brak żądanego wyjścia po wykonaniu QoQ

Zapytania w pamięci (QoQ) mogą być trudne, jeśli chodzi o typy danych. Są znacznie mniej świadomi niejawnych konwersji typów danych niż baza danych. Używając date_format MySQL funkcja, w rzeczywistości konwertujesz wartości daty i godziny na ciągi . Więc kiedy uruchamiasz QoQ, CF może faktycznie wykonywać ciąg porównanie, które dałoby zupełnie inne wyniki niż data porównanie. Może wyjaśnić, dlaczego otrzymujesz złe wyniki.

Spróbuj zmienić bazę danych zapytanie zwracające wartość daty i godziny zamiast ciągu:

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

Aktualizacja:

Inną opcją jest RZUTOWANIE wartości jako DATE w swoim QoQ. To zmusiłoby QoQ do wykonania porównania dat zamiast porównania ciągów:

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. Jak napisać bezpieczne porównanie o wartości null <=> w czystym SQL?

  2. Wsparcie ScaleGrid DigitalOcean dla MySQL, PostgreSQL i Redis™ już dostępne

  3. MySql.Data.MySqlClient.Replication.ReplicationManager zgłasza wyjątek System.TypeInitializationException

  4. Jak przekazać parametry do wywołania zwrotnego zapytania mysql w nodejs?

  5. Nie mogę uzyskać tego zapytania sprzężenia mysql, aby uzyskać pożądany wynik