Autor | Zpráva | ||
---|---|---|---|
visionic Profil * |
Ahoj všem,
vyskytl se mi tu problém s datumem v MySQL. Klient mi poslal export z nějaké ne webové aplikace a všechny datumy (celkem 2700) mají formát: 6. 9. 1945 0:00:00. Soubor na import je v CSV a obsahuje i jiné sloupce. Při importu do sloupce (date) se datum automaticky převede na nulu, tedy 0000-00-00 Při importu do sloupce (text) se datum zapíše normálně a při převodu sloupce je zas nulová hodnota. Lze tedy datum nějak převést, aby mi nevznikla nulová hodnota? Bohužel ani před importem úprava v excelu mi nepomohla. Doufám, že nebudu muset řádek po řádku přepisovat. Děkuji za případnou pomoc. Takže jsem nakonec řešení našel. - odstranění nesmyslného času - odstranění nadbytečných mezer - nahrazení teček za pomlčky - převedení na správný formát datumu z dmY na Ymd - změna typu sloupce na date. A je vyhráno. SQL: UPDATE `tabulka` SET `datum-narození` = REPLACE(`datum-narození`,'0:00:00',''); UPDATE `tabulka` SET `datum-narození` = REPLACE(`datum-narození`,' ',''); UPDATE `tabulka` SET `datum-narození` = REPLACE(`datum-narození`,'.','-'); UPDATE `tabulka` SET `datum-narození` = STR_TO_DATE(`datum-narození`,'%d-%m-%Y'); ALTER TABLE `tabulka` CHANGE `datum-narození` `datum-narození` DATE; |
||
Kajman Profil |
Jen doplním, že při importu přes load data lze hodnotu z csv dát do proměnné a případně ji použít pro naplnění nějakého sloupce. Něco jako
load data infile 'soubor.csv' into table `tabulka` (`sloupec1`, `sloupec2`, @datum_v_jinem_formatu, `sloupec4`) set `datum-narození` = str_to_date(@datum_v_jinem_formatu, '%d. %m. %Y %k:%i:%s') |
||
Časová prodleva: 6 let
|
0