[ Obsah | Zobrazit menu ]

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.

Žádné komentáře

Napsat komentář - RSS pro komentáře

Napsat komentář Povolené tagy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>