SQL заявка не изважда резултат по избрана седмица
SQL заявка не изважда резултат по избрана седмица
Привет,
Искам да изведа данни от дадена седмица , например седмица 47
В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018
Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:
SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47
Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.
Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.
Това е фундаментална разлика, но има ли как да бъде преодоляна?
Искам да изведа данни от дадена седмица , например седмица 47
В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018
Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:
SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47
Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.
Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.
Това е фундаментална разлика, но има ли как да бъде преодоляна?
- anonimen
- Web-tourist
- Posts: 1603
- Joined: Mon Jun 11, 2012 6:07 pm
- Location: Parse error: unexpected "}" in /home/index.php on line 26
Ако полето ти е от тип DATE, не би трябвало да са ти нужни такива трансформации - https://www.w3schools.com/sql/func_mysql_week.asp
Пишеш `WHERE WEEK(data) = 47` и толкоз.
Пишеш `WHERE WEEK(data) = 47` и толкоз.
Полето беше varchar промених го с данните на DATE. Ок. Успешно търся по седмица по твоя пример, обаче имам данни за 2014, 2015, 2016, 2017, 2018, 2019.
Съответно заявката ми изкарва за седмица 47 всички данни за всичките години, а аз искам данните които се извеждат да са за конкретна година тоест - 2019 в момента
Съответно заявката ми изкарва за седмица 47 всички данни за всичките години, а аз искам данните които се извеждат да са за конкретна година тоест - 2019 в момента
- Revelation
- Web-tourist
- Posts: 920
- Joined: Sun Mar 24, 2013 1:23 pm
- dakata__92
- Web-tourist
- Posts: 3357
- Joined: Tue Aug 02, 2011 7:24 pm
Re: SQL заявка не изважда резултат по избрана седмица
Колега, е как ще ти извежда информация!? На DATE_FORMAT подаваш колона data, която е и запазена дума в SQL. Трябва да я поставиш в кавички за да се интерпретира, като име на колона в таблицата.Ticketa wrote:Привет,
Искам да изведа данни от дадена седмица , например седмица 47
В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018
Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:
SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47
Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.
Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.
Това е фундаментална разлика, но има ли как да бъде преодоляна?
[sql]SELECT * FROM `table` WHERE week(DATE_FORMAT(`data`, "%Y-%m-%d"))=47[/sql]
Виж дали така ще ти проработи. При мен заявката работи с моя таблица и колона в нея.
- Revelation
- Web-tourist
- Posts: 920
- Joined: Sun Mar 24, 2013 1:23 pm
Re: SQL заявка не изважда резултат по избрана седмица
dakata__92 wrote:Колега, е как ще ти извежда информация!? На DATE_FORMAT подаваш колона data, която е и запазена дума в SQL. Трябва да я поставиш в кавички за да се интерпретира, като име на колона в таблицата.Ticketa wrote:Привет,
Искам да изведа данни от дадена седмица , например седмица 47
В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018
Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:
SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47
Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.
Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.
Това е фундаментална разлика, но има ли как да бъде преодоляна?
[sql]SELECT * FROM `table` WHERE week(DATE_FORMAT(`data`, "%Y-%m-%d"))=47[/sql]
Виж дали така ще ти проработи. При мен заявката работи с моя таблица и колона в нея.
DATA не е запазена дума в SQL, а е ключова дума.
Ключовите думи не е задължително да се ограждат в кавички. Само резервираните трябва.