0

NodeJS と node-mysql を使用して、タイムスタンプに基づいてレコードの範囲を選択しようとしています。私のコードは次のようになります:

sql = "SELECT pressure, temp1, temp2, UNIX_TIMESTAMP(timestamp)*1000 
AS unix_timestamp
FROM observations WHERE timestamp >= STR_TO_DATE( ? ,'%Y-%m-%d') 
ORDER BY unix_timestamp DESC LIMIT ?;"

var current_temp = db.query(sql,
start_date, num_records,
  function(err, rows, fields){
     if (err){

変数 start_date には 2013-03-01 が含まれています。「?」を手動で置き換えると 「2013-03-01」を使用したSTR_TO_DATE式で、クエリが機能します。ただし、変数を置換しようとすると、次のエラーが発生します。

TypeError: Object 500 has no method 'apply'
at Query.Sequence.end     (/home/ian/Documents/emacs/org/org_files/computer/nodejs/node_modules/mysql/lib/protocol/sequences/Sequence.js:66:24)
at Query.ErrorPacket     (/home/ian/Documents/emacs/org/org_files/computer/nodejs/node_modules/mysql/lib/protocol/sequences/Query.js:89:8)
at Protocol._parsePacket     (/home/ian/Documents/emacs/org/org_files/computer/nodejs/node_modules/mysql/lib/protocol/Protocol.js:169:24)
at Parser.write     (/home/ian/Documents/emacs/org/org_files/computer/nodejs/node_modules/mysql/lib/protocol/Parser.js:62:12)
at Protocol.write     (/home/ian/Documents/emacs/org/org_files/computer/nodejs/node_modules/mysql/lib/protocol/Protocol.js:36:16)
at write (_stream_readable.js:547:24)
at flow (_stream_readable.js:556:7)
at Socket.pipeOnReadable (_stream_readable.js:588:5)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:382:10)
4

1 に答える 1

0

変数は、次のように、SQL ステートメントに表示される順序に従って配置された配列内にある必要があります。

    db.query(sql,[start_date, num_records],  function(err, rows, fields){ logic ;})
于 2013-03-19T13:06:34.417 に答える