[ Obsah | Zobrazit menu ]

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.