![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование даты (T-SQL) [MSSQL]
Ольга © (2005-11-25 12:13:00)Есть все составляющие даты в переменных типа int
Как сформировать полную дату?
declare @god int, @mes int, @day int, @hour int, @min int, @s int
declare @dd datetime
set @god=2005
set @mes=11
set @day=25
set @hour=1
set @min=0
set @s=0
set @dd= ???
sniknik (2005-11-25 13:11:00) [21]Zz_ (25.11.05 13:06) [10]
set dateformat dmy
print dateadd(dd,0,'20051105')
set dateformat mdy
print dateadd(dd,0,'20051105')
Zz_ (2005-11-25 13:06:00) [22]
set dateformat dmy
print dateadd(dd,0,'2005-11-05')
set dateformat mdy
print dateadd(dd,0,'2005-11-05')
Zz_ (2005-11-25 13:05:00) [23]>>Ольга (25.11.05 13:03) [8]
НЕТ !!!
Ольга (2005-11-25 13:03:00) [24]'yyyy-mm-ddd' - это правильно скушает любой сервер?
Zz_ (2005-11-25 13:02:00) [25]>>Ольга (25.11.05 12:56) [4]
>>То есть вы считаете этот способ вполне приемлемым?
>>Я думала, что есть что-нибудь более элегантное.
Это САМЫЙ быстрый способ по времени исполнения
элегантные способы безбожно тормозят
>>Reindeer Moss Eater © (25.11.05 12:58) [6]
>>Сделай из интов строку даты в формате odbc-canonical 'yyyy-mm-ddd'
И наступить на грабли
Reindeer Moss Eater (2005-11-25 12:58:00) [26]Сделай из интов строку даты в формате odbc-canonical
'yyyy-mm-ddd'
Ega23 (2005-11-25 12:57:00) [27]
> Как-то криво.
Ну это первое, что в голову пришло. Можно и круче извратиться. :о)
Ольга (2005-11-25 12:56:00) [28]
> Zz_ (25.11.05 12:50) [2]
То есть вы считаете этот способ вполне приемлемым?
Я думала, что есть что-нибудь более элегантное.
Ну, раз мастера советуют, так и сделаю.
Спасибо.
Ольга (2005-11-25 12:51:00) [29]
> Ega23 © (25.11.05 12:37) [1]
К какой дате добавлять?
set @d=0
DATEADD(yyyy,@god-1900,@d) и т.д. ?
Как-то криво.
Zz_ (2005-11-25 12:50:00) [30]
declare @god int, @mes int, @day int, @hour int, @min int, @sec int
declare @dd datetime
set @god = 2005
set @mes = 11
set @day = 25
set @hour = 1
set @min = 33
set @sec = 55
set @dd = dateadd(ss,@sec,dateadd(mi,@min,dateadd(hh,@hour,dateadd(dd,@day-1,dateadd(mm,@mes-1,dateadd(yy,@god-1900,''))))))
print @dd
Ega23 (2005-11-25 12:37:00) [31]DATEADD ?