NULL hodnota a STR_TO_DATE funkce
Napsáno dne 18. Duben 2010 - Zobrazeno 545x
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.