0

構文を使用してクエリを作成していますcfscript。日付であるクエリ パラメータが 2 つあります。初めて使用して日付文字列を作成しました

queryservice.addParam(
     name="last_update",
     value="createODBCDate(now())",
     cfsqltype="cf_sql_date");

これは次のようなものだと思います:

<cfqueryparam value="#createODBCDate(now())#" cfsqltype="cf_sql_date">

したがって、クエリを実行すると、次のようになります。

The cause of this output exception was that: coldfusion.runtime.Cast$DateStringConversionException: The value createODBCDate(now()) cannot be converted to a date.

罰金。そこで、変数を作成し、

var currentDate = createODBCDate(now());

に追加しました

queryservice.addParam(
     name="last_update",
     value="createODBCDate(now())",
     cfsqltype="cf_sql_date");

そして得た

The cause of this output exception was that: coldfusion.runtime.Cast$DateStringConversionException: The value currentDate cannot be converted to a date.

標準<cfquery ...構文を使用してクエリを作成すると、正常に機能しました。

だから、私は何か間違ったことをしていると思い込んでいますが、それが何であるかを一生理解することはできません.

ところで、<cfscript>構文を使用してクエリを作成しようとするのはこれが初めてです。

4

2 に答える 2

6

value="createODBCDate(now())"

関数を囲む # 記号を忘れました。それらがなければ、それは単なる文字列です。したがって、関数が呼び出されることはなく、リテラル文字 "createODBCDate(now())" を date として渡すことになりますvalue

アップデート:

余談ですが、cf_sql_date時間部分は自動的に削除されます。したがって、使用してcreateODBCDateも害はありませんが、冗長です。あなたは単に書くことができます:

    queryservice.addParam(
         name="last_update",
         value="#now()#",
         cfsqltype="cf_sql_date");
于 2012-09-27T15:47:39.290 に答える
0

2 回目の試行では、@Leigh が言及したように # が必要であり、作成した変数「currentDate」も参照しませんでした。

于 2012-09-27T15:51:35.463 に答える