Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не выводить данные по запросу после определенной даты  [new]
Max_simba
Member

Откуда:
Сообщений: 3
Доброго времени суток столкнулся с проблемой при выполнении запроса:
select * from Trades where TradeDate = '2011-07-13 00:00:00'
результат: Запрос выполнен успешно. количество записей 0
А при выполнении запроса:
SELECT
      TradeDate = '2011-07-13 00:00:00'
  FROM Trades
результат: Запрос выполнен успешно. количество записей 988567

при том что если стоит число на день раньше то оба запроса выдают одинаковые результаты.
27 июл 11, 14:30    [11034275]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
SELECT
      TradeDate = 'А тут я ваще все что угодно могу написать'
  FROM Trades


Сообщение было отредактировано: 27 июл 11, 14:33
27 июл 11, 14:33    [11034301]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Max_simba, не удивительно, это два совершенно разных запроса. Вы хоть понимаете как они работают?
27 июл 11, 14:33    [11034307]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Max_simba, а вопрос в чём? )
27 июл 11, 14:34    [11034312]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Shakill
Max_simba, а вопрос в чём? )

Если судить по:
автор
Re: Не выводить данные по запросу после определенной даты

То пущай ТС попробует:
select * from Trades where TradeDate < '20110713'
27 июл 11, 14:36    [11034342]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
гы-гы
Guest
перевод ему нужен, с английского
в первом запросе написано: выведи мне все колонки таблицы Trades,
где в строкак в поле TradeDate дата = '2011-07-13 00:00:00'.
ну нет таких строк, выдалось 0 записей.

во втором запросе написано: выведи мне текст '2011-07-13 00:00:00',
дай этой колонке имя TradeDate.
ну оно и выдало этот текст во всех строках,
а еще теперь мы все узнали, что в Trades 988567 строк.

+ знаем, что все данные в той же таблице за 2011-07-12
27 июл 11, 14:43    [11034403]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
Max_simba
Member

Откуда:
Сообщений: 3
Всем спасибо.
27 июл 11, 14:50    [11034470]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
гы-гы
+ знаем, что все данные в той же таблице за 2011-07-12
А откуда?!
27 июл 11, 14:55    [11034510]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
гы-гы
Guest
Max_simba
при том что если стоит число на день раньше то оба запроса выдают одинаковые результаты.


ну так с датой на день раньше тот запрос, где выводим текст, выдает столько же строк, сколько фильтрованный по дате 2011-07-12.
а запрос с текстом выдает всегда столько строк, сколько их всего в таблице
27 июл 11, 15:07    [11034596]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
гы-гы
Max_simba
при том что если стоит число на день раньше то оба запроса выдают одинаковые результаты.


ну так с датой на день раньше тот запрос, где выводим текст, выдает столько же строк, сколько фильтрованный по дате 2011-07-12.
а запрос с текстом выдает всегда столько строк, сколько их всего в таблице
Результата запроса на день раньше здесь не было.

Max_simba, есть ещё нюансы, связанные с временем в поле TradeDate.
Оно всегда '00:00:00.000'? Есть гарантия?
27 июл 11, 15:12    [11034626]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
гы-гы
Guest
iap,

чтобы оба запроса с датой на день раньше (2011-07-12) выдали одно и то же,
надо посмотреть, что же выдает второй запрос, ибо только там мы точно знаем результат.
и этот результат -- один единственный столбец с именем TradeDate,
имеющий 988567 строк одинакового содержания '2011-07-12 00:00:00'.
чтобы запрос
select * from Trades where TradeDate = '2011-07-12 00:00:00'
выдал то же самое, надо иметь таблицу, состоящую ровно из одного столбца (TradeDate),
в которой 988567 строк, и в каждой из них 2011-07-12 00:00:00
27 июл 11, 15:24    [11034710]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
Max_simba
Member

Откуда:
Сообщений: 3
Все в порядке меня ввели в заблуждение, все нормально, все правильно работает... я просто ступил...
27 июл 11, 15:24    [11034711]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
гы-гы,

где мы видим "одинаковое содержание '2011-07-12 00:00:00'"?
Вот я как раз этого и не вижу!

Max_simba,

про время-то просветите.
А то первоначальный запрос у Вас криво выглядит.
27 июл 11, 15:42    [11034834]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
гы-гы
Guest
ну еще раз, читаем:
Max_simba
при том что если стоит число на день раньше то оба запроса выдают одинаковые результаты.


и что нам выдает запрос
SELECT
      TradeDate = '2011-07-12 00:00:00'
  FROM Trades

разве не "таблицу, состоящую ровно из одного столбца (TradeDate),
в которой 988567 строк, и в каждой из них 2011-07-12 00:00:00" ?
27 июл 11, 15:46    [11034865]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
гы-гы
ну еще раз, читаем:
Max_simba
при том что если стоит число на день раньше то оба запроса выдают одинаковые результаты.


и что нам выдает запрос
SELECT
      TradeDate = '2011-07-12 00:00:00'
  FROM Trades

разве не "таблицу, состоящую ровно из одного столбца (TradeDate),
в которой 988567 строк, и в каждой из них 2011-07-12 00:00:00" ?
Только '2011-07-12 00:00:00' не имеет никакого отношения
к таблице Trades. Это просто литеральная строка, выданная для каждой записи.
А TradeDate - алиас поля SELECTa. Абсолютно полный аналог:
SELECT
      '2011-07-12 00:00:00' AS TradeDate
  FROM Trades
27 июл 11, 15:52    [11034913]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
гы-гы
Guest
iap,

во блин, а я разве не про это???
мы знаем, что выдает второй запрос, что с одной датой, что с другой, Вы с этим согласны?
он выдает литеральную строку в количестве строк таблицы , ок?
у нас же не просто
SELECT
      TradeDate = '2011-07-12 00:00:00'
,
а именно
SELECT
      TradeDate = '2011-07-12 00:00:00'
  FROM Trades
.

FROM Trades !!!!

так что знаем число строк Trades, ок?
+ знаем все колонки, т.к. раз первый запрос со звездой ВЫДАЕТ ТО ЖЕ САМОЕ ЧТО ЗАПРОС, РАЗМНОЖАЮЩИЙ ЛИТЕРАЛьНУЮ СТРОКУ,
ТО КОЛОНОК ОН ТОЖЕ ВЫДАЕТ ВСЕГО ОДНУ, ИЛИ О КАКОМ РАВЕНСТВЕ РЕЗУЛьТАТОВ МОЖНО ГОВОРИТь???
+ знаем содержимое этой колонки, раз 2 запроса выдали одинаковые результаты, то пардон, они выдали одинаковые строки!
И ЧТО НАМ ВЫДАЛ РАЗМНОЖАТЕЛьНЫЙ ЗАПРОС? 2011-07-12 00:00:00 !!!
ну так значит и запрос со звездой и ФИЛьТРОМ ПО ДАТЕ выдал это же.
если fильтрованный запрос выдал СТРОКИ В КОЛИЧЕСТВЕ СТРОК ВСЕЙ НЕФИЛьТРОВАННОЙ ТАБЛИЦЫ, то ничего там больше и нет.
все, надоело спорить.
вот именно Вас, iap, всегда с удовольствием читаю, но сегодня упорно не понимаю, Вы про что
27 июл 11, 16:07    [11035050]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Сколько страстей в этой теме))))))))
27 июл 11, 16:11    [11035084]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
гы-гы,

ну, вот, к примеру Гавриленко Сергей Алексеевич предложил такой запрос:
SELECT
      TradeDate = 'А тут я ваще все что угодно могу написать'
  FROM Trades
Какой вывод Вы сделаете из его результата?
Что количество записей 988567 и во всех дата равна 'А тут я ваще все что угодно могу написать'?
27 июл 11, 16:17    [11035127]     Ответить | Цитировать Сообщить модератору
 Re: Не выводить данные по запросу после определенной даты  [new]
гы-гы
Guest
iap,

а он и не пишет, что некий второй запрос выводит ТО ЖЕ САМОЕ :P
(тут такой длинный-длинный язык)
27 июл 11, 17:06    [11035513]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить