2016-05-26 2 views
1

退屈な状態でTVPを使用しようとしており、DateTimeパラメータを使用している間もこのエラーが発生し続けます。退屈なSQL ServerのTVP:parameter.value.getTimeはdatetimeの関数ではありません

要求を構築しながら例外は次のとおりです。

days = Math.floor((parameter.value.getTime() - UTC_EPOCH_DATE.getTime())/
(1000 * 60 * 60 * 24)); 
              ^

例外:

TypeError: parameter.value.getTime is not a function

コードは、データ・タイプのための面倒なコードを見てみると、この

/*declare table*/``  
let table = { 
     columns: [ 
      { name: 'a', type: TYPES.VarChar, length: 50, nullable: true }, 
      { name: 'b', type: TYPES.Int}, 
      { name: 'c', type: TYPES.DateTime} 

     ], 
     rows: [ 
      ['hello tvp', 777,'05/08/07 12:35 PM'], 
      ['OLO', 45,'05/08/16 1:30 AM'] 
     ] 
    }; 

/*request code*/ 
var request = new Request("MyCustomStoredProcedure", function (err, rowCount) { 
        if (!err) { 
         callback(err) 
         logger.info("rowCount", rowCount) 
        } else { 
         callback(rowCount) 
         logger.error("Error => ", err) 
        } 
       }); 
       request.addParameter('tvp', TYPES.TVP, table); 

       request.on('row', function (columns) { 
        logger.info("data", columns) 
       }); 

       connection.callProcedure(request); 



CREATE TYPE TestType AS TABLE (a VARCHAR(50), b INT, c DateTime); 

CREATE PROCEDURE MyCustomStoredProcedure 
    (@tvp TestType readonly) 
AS 
    SELECT * 
    FROM @tvp 

のように見えます。 js私はparameter.valueが文字列であり、オブジェクトではないことを発見しました。

私はここで何が間違っているのか分かりません。私はdatetimeなし

  • を試してみました何

    は - DateTime2

  • に動作します - 着信の表形式のデータストリーム(TDS)リモートプロシージャコール(RPC)プロトコルストリームが正しくありません。パラメータ2( ""):データ型0x03は不明です。 https://github.com/patriksimek/node-mssql
  • 、内部的には再び退屈
+0

1.最初のビットだけが失敗しますか? 2番目のビットに最初のコードが表示されないので、私たちは何を見ていますか? 2. ISO-8601の日付時刻形式を使用します: ''05/08/16 1:30 AM''はISO-8601でなく、最悪の場合はエラーを引き起こします – gbn

答えて

1

を使用しています私は、VARCHARを使用する代わりに、日時の、そしてそれは私の問題を解決しました。私はそれが最良の解決策ではないことを理解していますが、時間のために私はそれを取ったのです。

0

日付形式に問題があります。 javascriptのdatetimeにtimezone要素があります SQLのdatetimeにタイムゾーンがありません。

は、私はタイムゾーン、それを解決するに加える同じ問題に遭遇した

['hello tvp', 777,new Date('05/08/07 12:35 PM')] 

を試してみてください。

関連する問題