Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убедится в том что в поле типа date данные иду 
V
    Опции темы
lv151
Дата 2.10.2013, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Как в SELECT запросе убедиться в том, что в поле, типа date, данные идут последовательности +1 день?
Или выбрать их таким способом, чтобы они шли +1 день?

Это сообщение отредактировал(а) lv151 - 2.10.2013, 14:20
PM MAIL   Вверх
Akina
Дата 2.10.2013, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



DDL и тест-наполнение в студию. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 2.10.2013, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Код

CREATE TABLE #T1
(
    date1 date
)


INSERT INTO #T1
VALUES('01.01.1900')

INSERT INTO #T1
VALUES('01.02.1900')

INSERT INTO #T1
VALUES('01.03.1900')

INSERT INTO #T1
VALUES('01.05.1900')


DROP TABLE #T1


Я хочу отловить, что даты идут не последовательно +1 день.
Или выводить только те, которые идут последовательно +1 день.


Это сообщение отредактировал(а) lv151 - 2.10.2013, 14:43
PM MAIL   Вверх
Akina
Дата 2.10.2013, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



То есть ты хочешь получить от запроса одну запись с одним полем, где будет либо 0, либо -1?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 2.10.2013, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Нет, я хочу чтобы выборка из таблицы #T1 делилась на группы, в которой данные идут последовательно +1 день т.е.

Группа1
01.01.1900
01.02.1900
01.03.1900
Группа2
01.05.1900

Это сообщение отредактировал(а) lv151 - 2.10.2013, 14:53
PM MAIL   Вверх
Zloxa
Дата 2.10.2013, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



Цитата(lv151 @  2.10.2013,  15:52 Найти цитируемый пост)
выборка из таблицы #T1 делилась на группы, в которой данные идут последовательно +1


Если мы из значения элемента упорядоченного ряда целых значений вычтем порядковый номер элемента ряда, то получим уникальный идентификатор для каждой группы подряд идущих значений.

то-же самое можно реализвовать для упорядоченного ряда округленных до дня дат, вычитая из даты количество дней, равное порядковому номеру элемента ряда. В этом случае идентификатор группы будет иметь тип даты.
на оракле это выглядит так:

Код

SQL> with t as (
  2    select to_date('01.01.1900','MM.DD.YYYY') dt from dual
  3    union all select to_date('01.02.1900','MM.DD.YYYY') dt from dual
  4    union all select to_date('01.03.1900','MM.DD.YYYY') dt from dual
  5    union all select to_date('01.05.1900','MM.DD.YYYY') dt from dual
  6  )
  7  select dt,dt-row_number() over (order by dt) group_id
  8  from t
  9  order by dt
 10  /
DT          GROUP_ID
----------- -----------
01.01.1900  31.12.1899
02.01.1900  31.12.1899
03.01.1900  31.12.1899
05.01.1900  01.01.1900


Я не знаю что получится если в MS SQL от даты отнять целое.
В оракле получится дата меньшая на вычтенное количество дней.
В MS, думаю, тоже можно как-то отнять целое количество дней от даты.

Это сообщение отредактировал(а) Zloxa - 2.10.2013, 16:07


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Akina
Дата 2.10.2013, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Zloxa @  2.10.2013,  16:17 Найти цитируемый пост)
Я не знаю что получится если в MS SQL от даты отнять целое.
В оракле получится дата меньшая на вычтенное количество дней.

В MS SQL абсолютно так же.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 2.10.2013, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



PS. Это применительно к типам datetime или smalldatetime, и не относится к типу timestamp.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 2.10.2013, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Не, изврат. Я думал это как то можно сделать с помощью функций ранджирования.
PM MAIL   Вверх
Zloxa
Дата 2.10.2013, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 10
Всего: 161



lv151, row_number- как бы ранжирующая функция.  smile


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
lv151
Дата 7.10.2013, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Да, я понимаю. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1102 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.