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

Откуда: Киев
Сообщений: 16
Как записать анологичную запись в MS sql?

to_char(trunc(s.date_called,'HH24'),'HH24:MI" - "')||to_char(trunc(s.date_called,'HH24')+1/24,'HH24:MI')
5 окт 17, 09:56    [20844294]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
Добрый Э - Эх
Guest
Patucho,

оно, конечно же, каждый первый скуль-серверщик понимает твои ораклово-постгришные синтаксисы по работе с датой и её конвертацией в строку и обратно...
5 окт 17, 10:00    [20844300]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
iiyama
Member

Откуда:
Сообщений: 444
Patucho,

CONVERT
5 окт 17, 10:09    [20844326]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
Patucho
Member

Откуда: Киев
Сообщений: 16
Что не понятно?

Нужно определить цикл действия date_called если тип данных столбца datetime
Допустим: дата действия '2017-10-01 08:35:30:000' равно '08:00 - 09:00'
5 окт 17, 10:10    [20844331]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
Добрый Э - Эх
Guest
iiyama,

да там человеку, по сути, всё что нужно - это из текущего времени получить значение текущего часа и сформировать символьный "диапазон" от текущего часа до следующего.
то есть, если сейчас у нас текущее время 16:10, то автору на выходе требуется строковый литерал вида: '16:00 - 17:00'
5 окт 17, 10:13    [20844347]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
Добрый Э - Эх
Guest
Patucho,

это понятно тебя, это понятно мне. это понятно любому, кто работал с Оракле или постгре.
но поверь, если человек видел только MS SQL Server - ему твоя писанина непонятна... Так же как и ты не сразу вьедешь в полученный тут ответ на твой вопрос.
5 окт 17, 10:14    [20844355]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 509
Patucho
Что не понятно?

Нужно определить цикл действия date_called если тип данных столбца datetime
Допустим: дата действия '2017-10-01 08:35:30:000' равно '08:00 - 09:00'

DECLARE @p INT = DATEPART( HOUR, GETDATE() );
DECLARE @n INT = @p+1
DECLARE @s_p VARCHAR(2) = RIGHT( '0' + CONVERT( VARCHAR, @p ), 2 )
DECLARE @s_n VARCHAR(2) = RIGHT( '0' + CONVERT( VARCHAR, @n ), 2 )
SELECT @s_p + ':00 - ' + @s_n + ':00'
5 окт 17, 10:16    [20844364]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 3828
Patucho,

DATEPART(hh,GETDATE()),  DATEPART(hh,DATEADD(hh,1,GETDATE()))
5 окт 17, 10:17    [20844366]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
Patucho
Member

Откуда: Киев
Сообщений: 16
Добрый Э - Эх,

спасибо! В дальнейшем буду разъяснять детальнее
5 окт 17, 10:18    [20844370]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
tashkafox
Member

Откуда: Москва
Сообщений: 49
Девочки за красоту кода :)
declare @d as datetime = getdate()
select
	@d as [moment]
	,format(@d, 'HH:00') + ' - ' + format(dateadd(hour, 1, @d), 'HH:00') as [period]

Функция FORMAT доступна с SQL Server 2012.
5 окт 17, 16:28    [20845902]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
dies irae
Member

Откуда:
Сообщений: 56
tashkafox
Девочки за красоту кода :)


just for fun)
declare @h int = datepart(hh,getdate())
select format(@h*100+(@h+1)%24, '00:\0\0 - 00:\0\0')
5 окт 17, 17:46    [20846165]     Ответить | Цитировать Сообщить модератору
 Re: DATE  [new]
tashkafox
Member

Откуда: Москва
Сообщений: 49
dies irae,
Ваше кунг-фу меня впечатлило! Я так не умею.
И встретив бы в чужом коде, без запуска не поняла бы, что этим хотел сказать автор.
6 окт 17, 11:03    [20847435]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить