2017-01-11 10 views
0

私はローカルのMariaDBサーバーをXAMPP経由で実行しています。私は次のようになり〜1000 LOC、持っている:私はヨーロッパの日付形式を使用していたようMySQLの日付形式はどのように変更できますか?

insert into jobs values(781,'13-01-2005',10006,1,2.5,1,4.00); 

を私はエラーを取得しておいてください。

Data truncation: Incorrect date value: '13-01-2005' 

は、日付形式を変更するためのあらゆる可能性があり、データベースは入力として 'DD-MM-YYYY'を受け入れるように使用していますか?事前

+0

フォーマットが静的である、ここで確認します。http:// SQL Server 2005の脆弱性 –

答えて

1

にあなたは少しトリックでそれを変換することができ

感謝。

1)日付がvarchar型

CREATE TABLE `dateconv` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `datestr` varchar(32) DEFAULT NULL, 
    `i1` int(11) DEFAULT NULL, 
    `i2` int(11) DEFAULT NULL, 
    `i3` double DEFAULT NULL, 
    `i4` int(11) DEFAULT NULL, 
    `i5` double DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=782 DEFAULT CHARSET=utf8; 

2として格納されているこのような表、)を挿入すべてのデータ

insert into dateconv values(781,'13-01-2005',10006,1,2.5,1,4.00); 
... 
insert into dateconv values(999,'13-01-2005',10006,1,2.5,1,4.00); 

)あなたが選択するか、先テーブルにデータを挿入することができ

to:

SELECT 
    id, STR_TO_DATE(datestr, "%d-%m-%Y"), 
    i1,i2,i3,i4,i5 
FROM dateconv; 

挿入する:

INSERT INTO jobs 
SELECT 
    id, STR_TO_DATE(datestr, "%d-%m-%Y"), 
    i1,i2,i3,i4,i5 
FROM dateconv; 

alternativの道

をこのような各日付ストリングを中心に機能をSTR_TO_DATEを回す:

insert into jobs values(781,STR_TO_DATE('13-01-2005', "%d-%m-%Y"),10006,1,2.5,1,4.00); 
関連する問題