あなたは日時に知ら形式から日付を変換するためのMySQL STR_TO_DATE()
機能を使用することができます。
これは表
CREATE TABLE Price(
AirlineCode char(2) NOT NULL
, FlightNumber varchar(6) NOT NULL
, ClassCode char(3) NOT NULL
, TicketCode char(1) NOT NULL
, StartDate DateTime NOT NULL
, EndDate DateTime NOT NULL
, Price decimal NOT NULL
, PriceLeg1 decimal NULL
, PriceLeg2 decimal NULL
, PRIMARY KEY (
AirlineCode,
FlightNumber,
ClassCode,
TicketCode,
StartDate
)
, FOREIGN KEY (AirlineCode) REFERENCES Airlines (AirlineCode)
, FOREIGN KEY (ClassCode) REFERENCES TicketClass (ClassCode)
, FOREIGN KEY (TicketCode) REFERENCES TicketType (TicketCode));
であり、これはサンプルの挿入であるあなたに に感謝します値。あなたが使用することができます:あなたはdd-mm-yyyy hh:mm
(mmは24時間制であるすべての数字0パディングとHH):の日付を持っていると仮定すると
SELECT STR_TO_DATE('18-12-2012 00:00', '%d-%m-%Y %k:%i')
-- 2012-12-18 00:00:00
あなたはことそうのようなあなたのINSERTクエリでこの機能を使用することができます。
INSERT INTO Price VALUES (
'QF',
'QF67',
'ECO',
'E',
STR_TO_DATE('18-12-2012 00:00', '%d-%m-%Y %k:%i'),
STR_TO_DATE('04-01-2013 00:00', '%d-%m-%Y %k:%i'),
3427.82,
1636.14,
2045.20
);
編集
あなたのINSERTクエリを編集することができない場合は、MySQLがすべての変換をやらせることができます。一時的にdatetime列のデータ型をVARCHAR
に変更し、データをインポートします。次に、一時的なフィールドを追加します。 StartDate_Temp DATETIME
と更新クエリを実行:あなたはあなたのデータがOKであることを確認したら
UPDATE Price SET StartDate_Temp = STR_TO_DATE(StartDate, '%d-%m-%Y %k:%i')
は、一時的な列を削除します。
競合がないと仮定すると、正規表現を使用して日付をMySQL形式に置き換えることができます。 00秒を追加することなく離れてしまうことができるように、秒単位は省略可能です。 – Corbin
SQL Server *の 'datetime'カラムの値はフォーマットを持っていないことを明確にする必要があります - あなたが表示したのはデフォルトのフォーマットですSSMSは* datetime値を表示する*。 –