Страница 1 из 1

MySQL - крайне странные непонятки с логикой: select,тип date

Добавлено: Вт ноя 04, 2003 4:57 am
Pukite
Привет, коллеги!

Имеем таблицу tabula и в ней множество столбцов, в том числе столбец datums, определенный как date not null, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как select * from tabula where datums>='2003-10-20' and datums-'2003-10-21', выбираются строки с совсем другими значениями этого столбца :(

Что я делаю не так?

Re: MySQL - крайне странные непонятки с логикой: select,тип date

Добавлено: Вт ноя 04, 2003 5:52 am
A. Fig Lee
Pukite писал(а):Привет, коллеги!

Имеем таблицу 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'

:pain1:

Re: MySQL - крайне странные непонятки с логикой: select,тип date

Добавлено: Вт ноя 04, 2003 5:57 am
lozzy
Pukite писал(а):Привет, коллеги!

Имеем таблицу 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 как число, а не строку.

Re: MySQL - крайне странные непонятки с логикой: select,тип date

Добавлено: Вт ноя 04, 2003 6:11 am
A. Fig Lee
lozzy писал(а):
Pukite писал(а):Привет, коллеги!

Имеем таблицу табула и в ней множество столбцов, в том числе столбец датумс, определенный как дате нот нулл, там хранятся разные даты. Задача: выбрать из таблицы все записи между 2003-10-20 и 2003-10-21, записываю как селецт * фром табула вхере датумс>=ь2003-10-20ь анд датумс-ь2003-10-21ь, выбираются строки с совсем другими значениями этого столбца :(

Что я делаю не так?


Да вроде все так, если в запросе таки стоит не знак минус а равно. Можно попробовать еще даты указывать в формате 20031020 как число, а не строку.

Ето лучше, только все равно строку.

Re: MySQL - крайне странные непонятки с логикой: select,тип

Добавлено: Вт ноя 04, 2003 7:03 am
zVlad
Pukite писал(а):Привет, коллеги!

Имеем таблицу 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

и многое другое - полезное для дат и не только.

Re: MySQL - крайне странные непонятки с логикой: select,тип

Добавлено: Вт ноя 04, 2003 7:38 am
Dmitry67
zVlad писал(а): Pukite, меняйте MySQL на DB2 и Вы сможете написать:


Pukite, меняйте, wVlad Вам выплатит разницу в цене :)

Re: MySQL - крайне странные непонятки с логикой: select,тип

Добавлено: Вт ноя 04, 2003 8:00 am
adb
zVlad писал(а): 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 справится (похуже конечно -)).

Re: MySQL - крайне странные непонятки с логикой: select,тип

Добавлено: Вт ноя 04, 2003 8:36 am
lozzy
zVlad писал(а):
Pukite писал(а):Привет, коллеги!

Имеем таблицу 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 такое тоже есть, только синтаксис немного другой.

Re: MySQL - крайне странные непонятки с логикой: select,тип

Добавлено: Вт ноя 04, 2003 11:13 am
zVlad
Dmitry67 писал(а):
zVlad писал(а): 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.

Добавлено: Вт ноя 04, 2003 11:27 am
Dmitry67
Человек спросил про mySql
Предположим она бы послушалась Ваших советом
Как бы Вы отнеслись к человеку который приходит в команду и говорит - не то вы делаете. Код который уже написан надо переделать под (C#, MSSQL, you-name-it). А потом все заново перетестировать :)

Потом откуда Вы знаете что за задача стоит ? Одно дело советовать отказаться от mySQL если пишется финансовая система банка :), и совсем другое - допустим WEB-форум который еще и заявляется бесплатным :)

В математической школе нам все время повторяли "прежде чем решать задачу, иногда бывает полезно ознакомится с ее уловием". А то в Вас явно говорил маркетолог а не DBA.

Re: MySQL - крайне странные непонятки с логикой: select,тип

Добавлено: Вт ноя 04, 2003 11:28 am
lozzy
zVlad писал(а): 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 ;)