8

エラーログ:

{ [エラー: 不正な datetime 値: '2012-08-24T17:29:11.683Z' 列 'robot _refreshed_at' 行 1] 番号: 1292、sqlStateMarker: '#'、sqlState: '22007'、メッセージ: '正しくありませんdatetime 値: \'2012-08-24T17:29:11.683Z\' 列 \' robot_refreshed_at\' at row 1', sql: 'INSERT INTO users (id,name,count_moments,count_likes,count_followers,rob ot_refreshed_at,robot_count_followers ) 値 (\'1834084\',\'NNNyingzi\',\'5\',\ '0\',\'0\',\'2012-08-24T17:29:11.683Z\',\' 0\')'、setMaxListeners: [関数]、emit: [関数]、addListener: [関数]、on: [関数]、once: [関数]、removeListener: [関数]、removeAllListeners: [関数]、リスナー: [関数] }

私はこのコードを私のNode.js

  if s instanceof Date
         return s.toISOString()

データベースでそれらを更新しました。

挿入式は次のSQLとおりです。

     INSERT INTO users (id,name,count_moments,count_likes,count_followers,rob ot_refreshed_at,robot_count_followers) VALUES (\'1834084\',\'NNNyingzi\',\'5\',\ '0\',\'0\',\'2012-08-24T17:29:11.683Z\',\'0\')

私は何か間違ったことをしていますか?PHPMyAdminサーバーのテーブルから使用してテーブルをコピーしました。

どうもありがとう。

4

2 に答える 2

2

私はこのリンクでそれを見つけます:

DATETIME への MySQL の挿入: ISO::8601 形式を使用しても安全ですか?

ISO8601 タイムスタンプを挿入するのは安全ではないようです。のパーサーに依存しMySQLます。おそらく、異なるバージョンでは異なる方法を使用しています。

Date.prototype.format = (format) ->
  o = { 
    "(M+)" : this.getMonth()+1,
    "(d+)" : this.getDate(),
    "(h+)" : this.getHours(),
    "(m+)" : this.getMinutes(),
    "(s+)" : this.getSeconds(),
    "(q+)" : Math.floor((this.getMonth()+3)/3),
    "(S)" : this.getMilliseconds()
  } 
  if /(y+)/.test(format)
    format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length))
  for k, v of o
    if (new RegExp(k)).test(format)
       format = format.replace(RegExp.$1, if RegExp.$1.length == 1 then o[k] else ('00'+ o[k]).substr((''+ o[k]).length))
  return format

このピースコードはnode.js、フォーマットする機能を提供できますDate

于 2012-08-24T18:01:11.333 に答える