Привет, коллеги!
Имеем таблицу tabula и в ней множество столбцов, в том числе столбец datums, определенный как date not null, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как select * from tabula where datums>='2003-10-20' and datums-'2003-10-21', выбираются строки с совсем другими значениями этого столбца :(
Что я делаю не так?
MySQL - крайне странные непонятки с логикой: select,тип date
-
- Уже с Приветом
- Posts: 257
- Joined: 05 Apr 2003 17:06
- Location: Европа :: Латвия
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: MySQL - крайне странные непонятки с логикой: select,тип date
Pukite wrote:Привет, коллеги!
Имеем таблицу tabula и в ней множество столбцов, в том числе столбец datums, определенный как date not null, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как select * from tabula where datums>='2003-10-20' and datums-'2003-10-21', выбираются строки с совсем другими значениями этого столбца
Что я делаю не так?
select * from tabula where datums>='2003-10-20' and datums<='2003-10-21'
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 2435
- Joined: 12 Jun 2001 09:01
Re: MySQL - крайне странные непонятки с логикой: select,тип date
Pukite wrote:Привет, коллеги!
Имеем таблицу tabula и в ней множество столбцов, в том числе столбец datums, определенный как date not null, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как select * from tabula where datums>='2003-10-20' and datums-'2003-10-21', выбираются строки с совсем другими значениями этого столбца
Что я делаю не так?
Да вроде все так, если в запросе таки стоит не знак минус а равно. Можно попробовать еще даты указывать в формате 20031020 как число, а не строку.
Steel helmet protects your teeth from the morning to the evening.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Re: MySQL - крайне странные непонятки с логикой: select,тип date
lozzy wrote:Pukite wrote:Привет, коллеги!
Имеем таблицу табула и в ней множество столбцов, в том числе столбец датумс, определенный как дате нот нулл, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как селецт * фром табула вхере датумс>=ь2003-10-20ь анд датумс-ь2003-10-21ь, выбираются строки с совсем другими значениями этого столбца
Что я делаю не так?
Да вроде все так, если в запросе таки стоит не знак минус а равно. Можно попробовать еще даты указывать в формате 20031020 как число, а не строку.
Ето лучше, только все равно строку.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 15311
- Joined: 30 Apr 2003 16:43
Re: MySQL - крайне странные непонятки с логикой: select,тип
Pukite wrote:Привет, коллеги!
Имеем таблицу tabula и в ней множество столбцов, в том числе столбец datums, определенный как date not null, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как select * from tabula where datums>='2003-10-20' and datums-'2003-10-21', выбираются строки с совсем другими значениями этого столбца
Что я делаю не так?
Pukite, меняйте MySQL на DB2 и Вы сможете написать:
select * from tabula where datums between '2003-10-20' and '2003-10-21'
и получить правильный ответ. А также Вы сможете писать, например:
select * from tabula where datums>='2003-10-20' and CURRENT DATE + 1 MONTHS
и многое другое - полезное для дат и не только.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: MySQL - крайне странные непонятки с логикой: select,тип
zVlad wrote: Pukite, меняйте MySQL на DB2 и Вы сможете написать:
Pukite, меняйте, wVlad Вам выплатит разницу в цене
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 9275
- Joined: 14 Dec 2001 10:01
- Location: Российская Федерация
Re: MySQL - крайне странные непонятки с логикой: select,тип
zVlad wrote: Pukite, меняйте MySQL на DB2 и Вы сможете написать:
select * from tabula where datums between '2003-10-20' and '2003-10-21'
и получить правильный ответ. А также Вы сможете писать, например:
select * from tabula where datums>='2003-10-20' and CURRENT DATE + 1 MONTHS
и многое другое - полезное для дат и не только.
Разве between не входит в стандарт SQL-92? PostgreSQL это вполне прожовывает. Я думаю и MySql справится (похуже конечно -)).
-
- Уже с Приветом
- Posts: 2435
- Joined: 12 Jun 2001 09:01
Re: MySQL - крайне странные непонятки с логикой: select,тип
zVlad wrote:Pukite wrote:Привет, коллеги!
Имеем таблицу tabula и в ней множество столбцов, в том числе столбец datums, определенный как date not null, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как select * from tabula where datums>='2003-10-20' and datums-'2003-10-21', выбираются строки с совсем другими значениями этого столбца
Что я делаю не так?
Pukite, меняйте MySQL на DB2 и Вы сможете написать:
select * from tabula where datums between '2003-10-20' and '2003-10-21'
и получить правильный ответ. А также Вы сможете писать, например:
select * from tabula where datums>='2003-10-20' and CURRENT DATE + 1 MONTHS
В MySQL такое тоже есть, только синтаксис немного другой.
Steel helmet protects your teeth from the morning to the evening.
-
- Уже с Приветом
- Posts: 15311
- Joined: 30 Apr 2003 16:43
Re: MySQL - крайне странные непонятки с логикой: select,тип
Dmitry67 wrote:zVlad wrote: Pukite, меняйте MySQL на DB2 и Вы сможете написать:
Pukite, меняйте, wVlad Вам выплатит разницу в цене
Everything has its own price.
Dmitry67, what do you think is a price for wrong results from requests to database?
My opinion is that Pukite will have a profit even though cost of MySQL = $0.
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Человек спросил про mySql
Предположим она бы послушалась Ваших советом
Как бы Вы отнеслись к человеку который приходит в команду и говорит - не то вы делаете. Код который уже написан надо переделать под (C#, MSSQL, you-name-it). А потом все заново перетестировать
Потом откуда Вы знаете что за задача стоит ? Одно дело советовать отказаться от mySQL если пишется финансовая система банка , и совсем другое - допустим WEB-форум который еще и заявляется бесплатным
В математической школе нам все время повторяли "прежде чем решать задачу, иногда бывает полезно ознакомится с ее уловием". А то в Вас явно говорил маркетолог а не DBA.
Предположим она бы послушалась Ваших советом
Как бы Вы отнеслись к человеку который приходит в команду и говорит - не то вы делаете. Код который уже написан надо переделать под (C#, MSSQL, you-name-it). А потом все заново перетестировать
Потом откуда Вы знаете что за задача стоит ? Одно дело советовать отказаться от mySQL если пишется финансовая система банка , и совсем другое - допустим WEB-форум который еще и заявляется бесплатным
В математической школе нам все время повторяли "прежде чем решать задачу, иногда бывает полезно ознакомится с ее уловием". А то в Вас явно говорил маркетолог а не DBA.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 2435
- Joined: 12 Jun 2001 09:01
Re: MySQL - крайне странные непонятки с логикой: select,тип
zVlad wrote: Everything has its own price.
Dmitry67, what do you think is a price for wrong results from requests to database?
My opinion is that Pukite will have a profit even though cost of MySQL = $0.
It is not a wrong result. In most cases it is called 'кривые руки'. And last, but not least, MySQL commercial license costs $400
Steel helmet protects your teeth from the morning to the evening.