Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 2
1

Необходимо наставление

23.11.2015, 15:01. Просмотров 822. Ответов 3
Метки нет (Все метки)

Прошу помощи
имеется 2 пременные
@a -начало периода
@b -конец периода

имеется таблица
дата отрезок
20150101 1
20150101 2
20150101 3
20150101 4
20150102 96
отрезок- 15 минутный отрезок в разрезе дня от 1 до 96

необходимо создать отчет, в котором дат будет иметь ввид
дата/время, т.е.
01.01.2015 - 00:00:00
01.01.2015 - 01:00:00
и т.д

В какую сторону копать то?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2015, 15:01
Ответы с готовыми решениями:

На перепутье. Нужно наставление)
Предисловие Доброго времени суток всем обитателям форума. Я Паша, 21 год от рроду, учусь в...

Unity Напутствие и наставление сообществу
Дорогие форумчане и Unity новички и специалисты. Наблюдая и участвуя в форумах в направлении unity...

Не умею работать с COM портом, дайте наставление
Не умею работать с COM портом, дайте наставление У меня контролер имеется которые надо зашить по...

Наставление по реализации информационной интернет-системы
Здравствуйте, дорогие форумчане. Нужно сделать программу (информационную интернет-систему),...

3
21 / 21 / 12
Регистрация: 24.10.2014
Сообщений: 53
23.11.2015, 16:29 2
Лучший ответ Сообщение было отмечено Metall_Version как решение

Решение

Возможно, я не правильно понял, но мои варианты таковы:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
set dateformat dmy;
 
declare @a datetime = N'01.01.2015'
declare @b datetime = N'03.01.2015'
 
;with periodByMin(data, id) as (
select @a, 0
union all
select dateadd(day, (id+1)/96, data), (id+1)%96 from periodByMin where dateadd(day, (id+1)/96, data) < @b)
select * into #ourTable from periodByMin
option (maxrecursion 0)
 
select * from #ourTable --так, наверное, выглядит наша таблица
 
--Собственно решения:
--Вариант 1
select
    dateadd(minute, id*15, data) data
from #ourTable
 
--Вариант 2
select
    data,
    cast(dateadd(minute, id*15, data) as time(0)) tt
from #ourTable
 
--Вариант 3
select
    data,
    cast(cast(dateadd(minute, id*15, data) as time(0)) as nvarchar) + ' - ' +  cast(cast(dateadd(minute, (id+1)*15, data) as time(0)) as nvarchar) tt
from #ourTable
0
0 / 0 / 0
Регистрация: 23.11.2015
Сообщений: 2
23.11.2015, 22:02  [ТС] 3
1 почти подходит, только нужно что бы было не все отрезки а только такие
01.01.2015 - 00:00:00
01.01.2015 - 01:00:00
01.01.2015 - 02:00:00
01.01.2015 - 03:00:00
01.01.2015 - 04:00:00

Добавлено через 11 минут
+ сразу вопрос от мне надо вставить это в таблицу к примеру table1, т.е. кроме записей выше будут еще добавляться записи, как мне это реализовать

T-SQL
1
2
INSERT INTO table2 (дата+время, расстояние) 
values (select что то что бы получилось 01.01.2015 - 00:00:00,select step from put where id4=6 )
расстояние беру из другой таблицы
0
21 / 21 / 12
Регистрация: 24.10.2014
Сообщений: 53
23.11.2015, 22:24 4
Цитата Сообщение от vestnik1988 Посмотреть сообщение
1 почти подходит, только нужно что бы было не все отрезки а только такие
01.01.2015 - 00:00:00
01.01.2015 - 01:00:00
01.01.2015 - 02:00:00
01.01.2015 - 03:00:00
01.01.2015 - 04:00:00
Попробуйте доработать мой вариант до того, что нужно. Это должно быть несложно. Вот необходимые справочный материалы.
https://msdn.microsoft.com/ru-... .120).aspx

Цитата Сообщение от vestnik1988 Посмотреть сообщение
сразу вопрос от мне надо вставить это в таблицу к примеру table1, т.е. кроме записей выше будут еще добавляться записи, как мне это реализовать
T-SQLВыделить код
1
2
INSERT INTO table2 (дата+время, расстояние)
values (select что то что бы получилось 01.01.2015 - 00:00:00,select step from put where id4=6 )
расстояние беру из другой таблицы
Делаете запрос, который возвращает нужным вам результат.
Синтаксис insert'a можно подсмотреть здесь:
https://msdn.microsoft.com/ru-... therTables
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2015, 22:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Локальная сеть предприятия, дайте наставление
Добрый день! Уважаемые специалисты расскажите, дайте несколько советов пожалуйста о том как такую...

Наставление при написании математического кода
При написании программ на С++ с использованием сложный длинных математический формул,действий, я...

Дайте наставление по скрипту. Как вариант Greasemonkey
В общем дело обстоит так. Работа предстоит с Firefox. Есть страница...

Затруднения с началом изучения,нужно наставление опытных программистов!
Уже на протяжении месяца начал изучать один из самых известных языков программирования-Pascal ABC....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.