恩,謝謝大家的幫助。看起來它是日期格式中的未轉義字符:'%% d/%% m/%% Y %% H:%% i'是我所需要的。由於這是從批處理文件運行的,因此我沒有考慮到這一點。STR_TO_DATE和LOAD DATA INFILE格式化問題
我有一個運行SQL命令的批處理文件,我想我明白了什麼是必需的,但似乎無法使它們都聚集在一起。當我運行下面的代碼時,我可以正確導入所有內容,但是我的STR_TO_DATE格式必須關閉,或者我針對第二列的方式必須關閉,因爲我只是在我的「(NULL)」或全部爲零DATETIME列當我運行下面的腳本。
下面是我從命令提示符窗口看到的屏幕截圖。可疑部分用綠色突出顯示:http://i.imgur.com/TztR31p.png?1
有沒有想法?
CREATE TABLE `serials` (
`Serial` INT(10) UNSIGNED NULL DEFAULT '0',
`Stamp` DATETIME NULL DEFAULT NULL,
`Data1` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data2` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data3` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data4` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data5` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data6` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data7` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
`Data8` MEDIUMINT(8) UNSIGNED NULL DEFAULT '0',
INDEX `StampINX` (`Stamp`),
INDEX `SerialINX` (`Serial`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM;
echo on
setlocal enabledelayedexpansion
FOR %%f IN ("*.csv") DO (
set old=%%~dpnxf
set new=!old:\=\\!
mysql -e "LOAD DATA local INFILE '"!new!"' IGNORE into table test.serials COLUMNS TERMINATED BY ','
(Serial,@Stamp,Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8) SET
Stamp=STR_TO_DATE(@Stamp,'%d/%m/%Y %H:%i')" -u root -ppassword
echo %%~nxf DONE
)
以下是我與LOAD DATA INFILE功能訪問文件的樣本
Serial,Stamp,Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8
50183,01/01/2012 00:15,0,77,73,84,0,0,3,62
50183,01/01/2012 00:30,0,100,45,77,0,0,3,67
50183,01/01/2012 00:45,0,96,62,73,0,0,2,61
50183,01/01/2012 01:00,0,81,79,85,0,0,3,56
見這就是我在一個點上想太多,但我仍然得到相同的結果。關於這方面的文檔看起來很清楚,我可以告訴。我只是針對第二列不正確? – JubJub24