1

特定の日付に再フォーマットされたタイムスタンプ フィールド (yyyy-mm-dd HH:mm:ss) を使用して、Coldfusion でクエリを実行しようとしています。元のクエリを「日付形式」にすることはできますが、日付を選択するためのクエリのクエリを取得できません。cf_sql queryparam を別の値に変更しようとしましたが、RecordCount が 0 のままです。db フィールドは varchar であり、それをタイムスタンプに変更しようとしましたが、それでも機能しませんでした。私が見ていないアイデアはありますか?

<cfquery datasource="#DataSource#" name="rsAll">
  SELECT ID, date_format(DateSent, '%Y-%m-%d') As DateSent 
  FROM 'workorders'
  WHERE RelCompID_FK = '#SESSION.Auth.CompID#' 
</cfquery>

<cfquery name="rsAllDay" dbtype="query">
  SELECT *
  FROM rsAll
  WHERE  DateSent  = <cfqueryparam value="2010-03-03" cfsqltype="cf_sql_date">
</cfquery>
4

1 に答える 1

2

MySQLdate_format()関数は日時オブジェクトではなく文字列を返すため、ColdFusion でクエリのクエリを実行する場合、CF_SQL_VARCHARデータ型の代わりにデータ型を使用しますCF_SQL_DATE。渡された値は、最初のクエリから返された値と正確に一致する必要があります。

その他の考慮事項:

1)CFDUMP最初のクエリの結果を表示して、返されたデータ型が期待どおりであることを確認するために使用します。

2)CFQUERYPARAM最初のクエリの WHERE 句でも使用します。

于 2012-01-01T22:35:39.190 に答える