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

Откуда:
Сообщений: 64
Доброго времени суток :о). У меня несколько вопросов. SQLServer 2005

1. Есть таблица в которой привутствует поле date с типом данный datetime. Т.е. в ней храниться дата и время вплоть до секунд. Как сделать выборку учитывающую ТОЛЬКО дату так, что бы даты не повторялись?

т.е. из
2008-05-04 22:52:51.570
2008-04-11 14:42:28.640
2008-04-11 14:41:08.500
2008-04-11 14:40:08.077
2008-04-06 16:47:05.487
2008-04-06 16:46:11.000

надо получить
2008-05-04
2008-04-11
2008-04-06

2. Вопрос на другую тему :о). Есть 2 бд. В каждой одинаковые таблицы с разными данными. Как можно переписать эти данные из одной бд в другую?
3. те же 2 бд. Надо переписать хранимые процедуры из одной в другую. Как?
4 авг 09, 17:26    [7497248]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
1. https://www.sql.ru/faq/faq_topic.aspx?fid=110
2. Топ 10 вопросов.
3. Заскриптовать студией в файлик и накатить где угодно.

Сообщение было отредактировано: 4 авг 09, 17:28
4 авг 09, 17:28    [7497278]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
1. dateadd(dd, datediff(dd, 0, datecol), 0)
2. DTS
3. All Tasks -> Sql Script... -> Procedures

для спящего время бодрствования равносильно сну
4 авг 09, 17:28    [7497279]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
abra_labas
Member

Откуда:
Сообщений: 64
спасибо всем отписавшимся
Алексей2003 не очень понятен запрос dateadd(dd, datediff(dd, 0, datecol), 0). т.е. то, что datediff сравнивает дни и при совпадении выдает ноль, вижу,но как тут работает dateadd не понимаю :о(

SELECT [date]
FROM [NEWS_News]
WHERE subjectId=8
dateadd(dd, datediff(dd, 0, datecol), 0)
выдает ошибку Incorrect syntax near 'dateadd'.

или я чегото не понимаю?...
4 авг 09, 18:17    [7497573]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
abra_labas
спасибо всем отписавшимся
Алексей2003 не очень понятен запрос dateadd(dd, datediff(dd, 0, datecol), 0). т.е. то, что datediff сравнивает дни и при совпадении выдает ноль, вижу,но как тут работает dateadd не понимаю :о(

SELECT [date]
FROM [NEWS_News]
WHERE subjectId=8
dateadd(dd, datediff(dd, 0, datecol), 0)
выдает ошибку Incorrect syntax near 'dateadd'.

или я чегото не понимаю?...
А в хелпе не пробовали читать, что делает та или иная функция? Вместо того, что бы в "угадай мелодию" играть?
4 авг 09, 18:20    [7497588]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
abra_labas
спасибо всем отписавшимся
Алексей2003 не очень понятен запрос dateadd(dd, datediff(dd, 0, datecol), 0). т.е. то, что datediff сравнивает дни и при совпадении выдает ноль, вижу,но как тут работает dateadd не понимаю :о(
вы видите округление дат, полагаю
abra_labas

SELECT [date] 
FROM [NEWS_News]
WHERE subjectId=8 
  dateadd(dd, datediff(dd, 0, datecol), 0)
выдает ошибку Incorrect syntax near 'dateadd'.

или я чегото не понимаю?...

ошибка в синтаксисе. не хватает чего-то вроде "and" между условиями
4 авг 09, 18:23    [7497605]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
abra_labas
Member

Откуда:
Сообщений: 64
Гавриленко Сергей Алексеевич

А в хелпе не пробовали читать, что делает та или иная функция? Вместо того, что бы в "угадай мелодию" играть?


представте себе
"DATEADD (datepart , number, date )
Возвращает дату, полученную как сумму исходной даты date и интервала number (целое число со знаком), добавленного к заданному компоненту datepart даты date" (с)

мне не помогло понять для чего он нужен в моем случае.
4 авг 09, 18:25    [7497616]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
прочитал с [SRС]
dateadd(dd, datediff(dd, 0, datecol), 0) вообще не условие и в where быть не должно )
4 авг 09, 18:25    [7497618]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
abra_labas,
datediff(dd, 0, datecol) - считает кол-во дней с нулевой даты до даты datecol
dateadd(dd, datediff(dd, 0, datecol), 0) - добавляет кол-во дней с нулёвой до даты datecol к нулевой дате.
итого:
SELECT distinct dateadd(dd, datediff(dd, 0, datecol), 0)
FROM [NEWS_News]
WHERE subjectId=8 
4 авг 09, 18:26    [7497624]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
ща будет сообщение:

теперь у меня ошибка!!
Invalid column name 'datecol'.

для спящего время бодрствования равносильно сну
4 авг 09, 18:28    [7497632]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
соответствено вместо datecol поле [date]
4 авг 09, 18:28    [7497633]     Ответить | Цитировать Сообщить модератору
 Re: выборка дат  [new]
abra_labas
Member

Откуда:
Сообщений: 64
Сергей Мишин,
Большое спасибо за развернутый ответ :о).
4 авг 09, 19:01    [7497720]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить