2016-07-13 1 views
0

MySQL 5.7.13sails 0.12.3sails-mysql 0.12.2で使用しています。セイルから挿入するときにMySQLでミリ秒が得られない

2016-07-13T16:37:私は、フィールドの値としてログには、次のそのモデルのためbeforeCreateで、timestampフィールドに新しいレコードを挿入する21.529Z

モデルの項目の定義はタイプdatetimeです。フィールドは正しい形式(ISO)であるようですが、mysqlコマンドラインから直接レコードをチェックすると、ミリ秒単位で常に000が得られます。

2016-07-13T16:37:21.000

問題がどこにあるかチェックし、検索した後、私は見つけることができません。どんな手掛かり?

答えて

0

小数の秒はsails-mysqlでサポートされていないようです。

datetimeフィールド(here)を作成するためのコードは、小数秒(SO MySQLのdefaults to 0)を宣言せず、SQL(here)にDateインスタンスを変換するためのコードは、1秒の分解能を有します。

誰かattempted to add fractional second supportしばらく前に、そのPRは閉じられ、類似のものは見えません。

+0

@robertklepが指摘しているように、 'sails-mysql'モジュールの特定のファイルを変更する以外に方法はありません。変更するものは 'lib/sql.js'と' lib/utils.js'です。 'DATETIME'は' DATETIME(3) 'に置き換えられ、' toSqlDate() '関数は以下のようになります: ' date = date.getFullYear()+ ' - ' + ( '00' +(date.getMonthスライス(-2)+ '' ( '00' + date.getDate())スライス(-2)+ '' + ( '00' + date.getHours() )スライス(-2)+ ':' + ( '00' + date.getSeconds()).slice(-2)+ ':' + ( '00' + date.getMinutes() -2)+ '。' + ( '00' + date.getMilliseconds())。スライス(-2); ' – Pendrag

関連する問題