5

NOWMySQL テーブルに挿入しようとしています。何かのようなもの:

<cfset datatime = CREATEODBCDATETIME( Now() ) />

<cfquery name="qInsert" datasource="#dbanme#" >
   INSERT INTO TableName(....,date_created, date_modified)
   VALUES(...,'#datatime#', '#datatime#')
</cfquery>

しかし、次のエラーが発生します。

無効な JDBC タイムスタンプ エスケープ

何か助けはありますか?

4

4 に答える 4

12

を使用して、ColdFusion にデータを書き出させますcfqueryparam。ここでは絶対に必須というわけではありませんが、可能な限り使用することをお勧めします。SQL インジェクションから保護するだけでなく、変数を適切にフォーマットするため、値を文字列や整数などとして挿入する必要があるかどうかを心配する必要がありません。

<cfset datatime = CREATEODBCDATETIME( Now() ) />

<cfquery name="qInsert" datasource="#dbanme#" >
   INSERT INTO TableName(....,date_created, date_modified)
   VALUES(...,
        <cfqueryparam value="#datatime#" cfsqltype="cf_sql_timestamp">,
        <cfqueryparam value="#datatime#" cfsqltype="cf_sql_timestamp">
    )
</cfquery>
于 2013-03-05T16:39:41.193 に答える
7

時刻なしで日付が必要な場合は、次を使用します。

<cfquery name="qInsert" datasource="#dbanme#" >
   INSERT INTO TableName( ...., date_created, date_modified )
   VALUES ( ...
        , <cfqueryparam cfsqltype="cf_sql_date" value="#now()#">
        , <cfqueryparam cfsqltype="cf_sql_date" value="#now()#">
   )
</cfquery>

cf_sql_dateはいつでも削除され、フィールド タイプに応じて、日付のみ、または00:00:00時間値として日付を表示します。

時間のある日付が必要な場合:

<cfquery name="qInsert" datasource="#dbanme#" >
   INSERT INTO TableName ( ....,date_created, date_modified )
   VALUES ( ...
      , <cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">
      , <cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">
   )
</cfquery>
于 2013-03-05T16:48:21.657 に答える
4

組み込みのNOW関数を使用する場合は、クエリの一部として含めるだけです。

<cfquery name="qInsert" datasource="#dbname#" >
   INSERT INTO TableName(....,date_created, date_modified)
   VALUES(...,NOW(), NOW())
</cfquery>
于 2013-03-05T16:44:11.393 に答える
0

SQL Server に挿入するときに、生成された ColdFusion タイムスタンプを引用符で囲む必要はありません。

詳しく説明すると、DateFormat などを使用してタイムスタンプを文字列として作成する場合は、次の形式を使用して挿入する必要があります。

INSERT INTO TABLE(DATE_COL) VALUES({ts '#dateInAStringFormat#'})

日付用の ColdFusion ODBCx 関数がこのすべての作業を行います。

INSERT INTO TABLE(DATE_COL) VALUES( #dateInAStringFormat# )
于 2013-03-05T16:35:12.320 に答える