2016-08-14 11 views
0

あるテーブルから別のテーブルに日付の値を挿入したいと思います。残念ながら、これは期待どおりに動作しません。私は、日付の値が日付として認識されず、MySQLがそれを変換しようとしていると思います。ここでMySQLのあるテーブルから別のテーブルに日付の値を挿入する方法

は私のクエリです:

SELECT candidate_name, year_id, dateOfEvent, SUM(score) AS result FROM T1 

この結果が与えられます:

+----------------+---------+-------------+--------+ 
| candidate_name | year_id | dateOfEvent | result | 
+----------------+---------+-------------+--------+ 
|    17 |  4 | 2016-07-29 | 185 | 
+----------------+---------+-------------+--------+ 
次のクエリを実行する場合

INSERT INTO T2 (name, yearID, event_date, some_value) 
    SELECT candidate_name, year_id, dateOfEvent, SUM(score) FROM T1 

両方のカラムevent_datedateOfEventはタイプのDATE

です(上記のように)完全なクエリをしようと、次のエラーメッセージが表示され

Error Code: 1292. Truncated incorrect date value: 'Sun Jun 14 2015 12:02:54 GMT+0200 (CEST)' 

誰もがその理由を知っていますか?私は2015年6月14日のような日付を持っていない...私が得ることができる唯一の事は、dateOfEventの列が何らかの形で台無しにされ、日付として再解釈されることです。

CREATE TABLE `T2` (
`name` int(11) NOT NULL, 
`event_date` date NOT NULL, 
`some_value` int(11) DEFAULT NULL, 
`some_other_value` int(11) DEFAULT NULL, 
`some_different_value` int(11) DEFAULT NULL, 
`yearID` int(10) unsigned NOT NULL); 

そして、T1のため

は:奇妙な

...ここ

はT2のCREATEコマンドです(。どちらも、関連する部分を示しているだけに単純化されている)

CREATE TABLE `T1` (
`candidate_name` int(11) NOT NULL, 
`score` int(11) DEFAULT NULL, 
`zentrum` int(11) DEFAULT NULL, 
`zehntel` float DEFAULT NULL, 
`year_id` int(10) DEFAULT NULL, 
dateOfEvent date NOT NULL); 

+0

'T2'テーブルにトリガがありますか? –

+0

「T2」にトリガがありません。 – TomS

+0

'INSERT'はテーブル' DDL'と一致しません。修正してください。 – sagi

答えて

0

なぜこの問題が発生しているのかわかりません。列の1つが単にdateではないと思われます(おそらくdateofevent)。このエラーメッセージは、表示するサンプルデータ内のデータの種類に関連していないようです。

しかし、この文は正しくありません:

INSERT INTO T2 (name, yearID, event_date, some_value) 
    SELECT candidate_name, year_id, dateOfEvent, SUM(score) 
    FROM T1; 

あなたは集計関数が、無group byを持っています。したがって、T1にすべての行のscoreを合計し、最初の3つの列に対して任意の値を取得します。おそらくあなたは実際には:

+0

あなたは 'GROUP BY'に関しては正しいですが、テーブルには1行しかないので、結果は正しいです。実際のアプリケーションに 'GROUP BY'を追加します。 (私はここでクエリを簡略化した)。 – TomS

0

私が間違っていない場合、それはそれぞれの列の異なるデータ型の問題ですが、MySQLでGROUP BYなしで正常に動作します。 still event_dateは表T2には含まれていません。

+0

あなたは正しいです。間違った列名を使用しました。今すぐ修正する必要があります。ごめんなさい。 – TomS

関連する問題