- SQL заявка не изважда резултат по избрана седмица
WT форуми -> PHP MySQL ASP.NET -> SQL заявка не изважда резултат по избрана седмица
Създайте нова тема Напишете отговор 
Автор Съобщение
Ticketa
Турист
Турист

Регистриран на: 27/02/2012 3:54 pm

Support: 23
Bonus: 46
Мнения: 338
Мнение 29/11/2019 10:16 pm     SQL заявка не изважда резултат по избрана седмица Отговорете с цитат


Привет,
Искам да изведа данни от дадена седмица , например седмица 47

В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018

Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:

SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47

Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.

Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.

Това е фундаментална разлика, но има ли как да бъде преодоляна?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 161
Bonus: 321
Мнения: 1514
Мнение 30/11/2019 2:07 pm      Отговорете с цитат


Ако полето ти е от тип DATE, не би трябвало да са ти нужни такива трансформации - https://www.w3schools.com/sql/func_mysql_week.asp

Пишеш `WHERE WEEK(data) = 47` и толкоз.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Ticketa
Турист
Турист

Регистриран на: 27/02/2012 3:54 pm

Support: 23
Bonus: 46
Мнения: 338
Мнение 30/11/2019 10:56 pm      Отговорете с цитат


Полето беше varchar промених го с данните на DATE. Ок. Успешно търся по седмица по твоя пример, обаче имам данни за 2014, 2015, 2016, 2017, 2018, 2019.

Съответно заявката ми изкарва за седмица 47 всички данни за всичките години, а аз искам данните които се извеждат да са за конкретна година тоест - 2019 в момента
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 777
Мнение 01/12/2019 3:05 am      Отговорете с цитат


Както имаш WEEK(), така имаш и YEAR(). На същия принцип можеш да работиш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
chepa
Потребител
Потребител

Регистриран на: 14/08/2009 5:01 pm

Support: 1
Bonus: 2
Мнения: 744
Мнение 03/12/2019 3:03 pm      Отговорете с цитат


SELECT * FROM `table` WHERE WEEK(data) = '47' AND YEAR(data) = 2019?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 123
Bonus: 239
Мнения: 3157
Мнение 03/12/2019 5:09 pm     Re: SQL заявка не изважда резултат по избрана седмица Отговорете с цитат


Ticketa написа:
Привет,
Искам да изведа данни от дадена седмица , например седмица 47

В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018

Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:

SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47

Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.

Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.

Това е фундаментална разлика, но има ли как да бъде преодоляна?

Колега, е как ще ти извежда информация!? На DATE_FORMAT подаваш колона data, която е и запазена дума в SQL. Трябва да я поставиш в кавички за да се интерпретира, като име на колона в таблицата.
SQL code:
SELECT * FROM `table` WHERE week(DATE_FORMAT(`data`, "%Y-%m-%d"))=47


Виж дали така ще ти проработи. При мен заявката работи с моя таблица и колона в нея.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 777
Мнение 03/12/2019 8:02 pm     Re: SQL заявка не изважда резултат по избрана седмица Отговорете с цитат


dakata__92 написа:
Ticketa написа:
Привет,
Искам да изведа данни от дадена седмица , например седмица 47

В базата данни имам записани данни , като една от колоните е с име data в тази дата записвам датата със следния синтаксис: ден-месец-година 18-11-2018

Опитах по следния начин да си направя заявката , обаче не ми извежда резултати:

SELECT * FROM `table` WHERE week(DATE_FORMAT(data, "%Y-%m-%d"))=47

Използвам функцията week за да проверя седмицата. Идеята ми е да групирам всички записи от Х седмица.

Вероятно разликата е, че те връщат различни типове данни. WEEK () връща цяло число, докато DATE_FORMAT () връща символна стойност.

Това е фундаментална разлика, но има ли как да бъде преодоляна?

Колега, е как ще ти извежда информация!? На DATE_FORMAT подаваш колона data, която е и запазена дума в SQL. Трябва да я поставиш в кавички за да се интерпретира, като име на колона в таблицата.
SQL code:
SELECT * FROM `table` WHERE week(DATE_FORMAT(`data`, "%Y-%m-%d"))=47


Виж дали така ще ти проработи. При мен заявката работи с моя таблица и колона в нея.



DATA не е запазена дума в SQL, а е ключова дума.

Ключовите думи не е задължително да се ограждат в кавички. Само резервираните трябва.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
Страница 1 от 1


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети