NULL hodnota a STR_TO_DATE funkce
Napsáno dne 18. Duben 2010
Pokud jste jako já narazil na problém při převodu řetězce na hodnotu DATE, hodí se Vám tento ,,hack'' který mě stál pár hodin hledání.
Vstupní hodnoty v ,,day'' jsou např.: '01.01', '31.12', '24.06'
SELECT MAKEDATE(2010, DAYOFYEAR(STR_TO_DATE(DAY, '%d.%m')))
Při tomto zápisu vrátí SELECT vždycky NULL. Když prozkoumáte co, vrátí STR_TO_DATE, tak to vraci evidentně správný formát '0000-01-01' což ale není DATE, ale zřejmě STRING
Stačí tedy přidat konverzi na DATE pomocí CAST a řetězec se převede správně a nevrátí NULL!
SELECT MAKEDATE(2010, DAYOFYEAR(CAST(STR_TO_DATE(DAY, '%d.%m') AS DATE)))
Snad jsem Vám ušetřil trochu času
Zařazeno v: MySQL.