Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2011, 12:27   #1
KARTOH
Новичок
Джуниор
 
Регистрация: 26.01.2010
Сообщений: 2
По умолчанию MSSQL Как вывести значения по сегодняшней дате

Добрый день есть БД на MSSQL.
Надо выводить записи которые соответствуют сегодняшней дате.
KARTOH вне форума Ответить с цитированием
Старый 24.06.2011, 12:39   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
SELECT *
  FROM Tablica
  WHERE Date1>='20110624 00:00:00' AND
        Date1<'20110625 00:00:00'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.06.2011, 14:36   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

Аватар с MS Server знакома слабо, но думаю что достаточно будет сравнивать значение поля с какой-нибудь системной переменной даты?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 24.06.2011, 15:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Согласен со Спарки
http://msdn.microsoft.com/ru-ru/library/ms188383.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2011, 15:52   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Конечно можно, отбросив двумя функциями время из дат и запрашивая системную дату-время. Только не уверен, что этот вариант на большом массиве данных быстрее будет выше приведенного
Код:
SELECT *
  FROM Tablica
  WHERE CONVERT(datetime,Date1,112)=CONVERT(datetime,GETDATE(),112)
или
Код:
SELECT *
  FROM Tablica
  WHERE CONVERT(date,Date1)=CONVERT(date,GETDATE())
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.06.2011, 16:22   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Только не уверен, что этот вариант на большом массиве данных быстрее будет выше приведенного
Думаю что не будет никакой разницы. Все равно запрос будет скомпилирован, и скорее всего оптимизатор заранее позаботится о получении системной даты один раз для всех записей.
Ну и конечно же автору стоит иметь индекс по тому полю - тогда вопрос о скорости отпадет сам собой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.06.2011, 18:05   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Думаю что не будет никакой разницы
Проверил на MSSQL 2000. В таблице больше 500.000 записей, запросом выбирается около 1000 в Query Analyzer. Первый вариант дал десятые доли секунды, второй на 2 секунды больше. Индекса по полю нет. Запрос второго варианта чуть подправил, поскольку с datetime время все равно CONVERT возвращает
Код:
SELECT *
  FROM Tablica
  WHERE CONVERT(varchar,Date1,112)=CONVERT(varchar,GETDATE(),112)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.06.2011, 18:56   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Проверил на MSSQL 2000.
Верю. Это еще один повод настроить индекс
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести на оси категорий значения месяцев? O_H Microsoft Office Excel 16 14.09.2016 00:59
Как в Delphi вывести значения без пробелов и лишних символов Lesa1988 Помощь студентам 0 25.11.2010 21:45
как присвоить все три значения вектору В и вывести его как массив столбец при вызове функции Tomoa Microsoft Office Excel 8 08.03.2010 20:42
поиск максимального значения по дате Vorchun Microsoft Office Excel 2 17.01.2010 17:41
Суммировать значения по дате gavrylyuk Microsoft Office Excel 4 21.07.2008 12:52