[ Obsah | Zobrazit menu ]

NULL hodnota a STR_TO_DATE funkce

Napsáno dne 18. dubna 2010 - Zobrazeno 1 711x

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.