Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Формирование даты/времени в запросе?


Автор: VSergeyV 27.1.2007, 16:41
Необходимо выполнять запрос, условием выборки которого для поле времядаты является 6 часов следующего дня, как более изящней формировать параметр с учетом переходов между месяцами и годами?

БД - Sybase

Автор: LSD 27.1.2007, 16:56
Прибавь к текущей дате 24 часа, затем преобразуй в строку вида 27.01.2007, прибавь к строке 06:00:00 так чтобы получилось нечто похожее: 27.01.2007 06:00:00, и преобразуй обратно в дату.

Автор: stron 28.1.2007, 20:59
Лучше сразу привести к виду 27.01.2007, а потом прибавить 30 часов  smile 

Автор: VSergeyV 29.1.2007, 11:20
Ну у меня так
Код

  DECLARE @dt datetime, @str varchar(20)
  select @str="0000-00-00 06:00:00"
  select @dt=dateadd(day, 1, getdate())  
  select @str=stuff(@str,1,11,convert(char(12),@dt,102))

Автор: LSD 29.1.2007, 11:29
Цитата(VSergeyV @  29.1.2007,  11:20 Найти цитируемый пост)
Ну у меня так

Этот код работает?

Автор: VSergeyV 29.1.2007, 13:14
да, но еще лучше так
Код

select dateadd(hh,6,dateadd(dd,1,convert(char(8),getdate(),112)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)