Nefunkční formát volba ‚%i‘ v TIME_FORMAT v selectu
- freely111
- Člen | 41
Ahoj,
narazil jsem možná na chybku, ale třeba dělám něco špatně.
Potřebuji ze sloupce v DB jako time, vytáhnout pouze minuty o místo minut mi to vrátí písmeno obalené apostrofem: ‚i‘.
$this->db->table(‚tabulka‘)->select(„TIME_FORMAT(sloupec_cas, ‚%i‘) AS sloupec_cas“)
Ale když použiji jinou volbu pro formát než %i, např. %H nebo %T, tak to vrátí správný výsledek. Pouze to má problém s volbou formátu pro minuty: %i
Nesetkal se s tím někdo? Verzi nette database mám v2.3.8.
Díky za rady
EDIT:
pokud si nechám vypsat co mi to složí za dotaz, tak mi to vypíše:
SELECT TIME_FORMAT(`time_to`, '%`i`') AS `time_to2` FROM ...
SELECT TIME_FORMAT(`time_to`, '%H') AS `time_to2 FROM ...
Když tam tedy dám %i, tak mi to obalí znaky `
U jiných formát masek jako %H nebo %T to nedělá. Není to vážně chyba na
straně nette/database?
Editoval freely111 (15. 10. 2016 1:27)
- Altimit
- Člen | 82
Pokud to máš tak jak to je v příkladu tj. takhle:
SELECT TIME_FORMAT(`time_to`, '%`i`') AS `time_to2` FROM ...
Tak to je špatně.. protože to máš to „i“ obalené.. takhle to mám já:
SELECT TIME_FORMAT(`date`, '%i') FROM `shoutbox`
a vypíše mi to přesně minuty, které jsou v dané tabulce (všechny, nemám je filtrované), kdybych je chtěl filtrovat tak přidam už jen WHERE …
A jsou to příkazy přímo od mysql, zkus a uvidíš jest-li ti to půjde :)
- David Matějka
- Moderator | 6445
zkus to tam dosadit pres parametry:
->select("TIME_FORMAT(sloupec_cas, ?) AS sloupec_cas", '%i')
- freely111
- Člen | 41
David Matějka napsal(a):
zkus to tam dosadit pres parametry:
->select("TIME_FORMAT(sloupec_cas, ?) AS sloupec_cas", '%i')
Pro David Matějka:
->select("TIME_FORMAT(sloupec_cas, ?) AS sloupec_cas", '%i')
funguje, super, díky.
Pro Altimit:
Dotaz pokládám přesně jak si psal, ale pokud je tam písmeno „%i“ (pro
minuty), tak mi to nette/database obalí (nevím proč), ale když použiji
jiné formáty od MySql, např. „%H“ pro vrácení hodiny, tak je to
v pohodě.
Ale pomohlo zadání jak psal David Matějka. Zajímavé, že tobě to „%i“ potíže nedělá :)
- David Matějka
- Moderator | 6445
pro vysvetleni: nette database dava do `` to, co povazuje za identifikator (nazvy sloupcu, tabulek).. tohle bohuzel spatne detekovalo. ale asi by nebyl problem to opravit..
- freely111
- Člen | 41
David Matějka napsal(a):
pro vysvetleni: nette database dava do `` to, co povazuje za identifikator (nazvy sloupcu, tabulek).. tohle bohuzel spatne detekovalo. ale asi by nebyl problem to opravit..
Díky za vysvětlení. Jestli by se to chovat tak nemělo v těchto případech u TIME_FORMAT, DATE_FORMAT apod, tak by to asi stálo za opravu v budoucí verzi. V žádostech na případné opravy apod. nemám zatím zkušenosti, tak bych to nechal na Tobě, jestli to někam napíšeš, díky.