Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > отделение даты от времени средствами SQL


Автор: Martin_8 29.4.2008, 19:14
Здравствуйте. Помогите разобраться, как отделить дату от времени средствами SQL.
Имеется поле с типом данных datetime. В него программно заносится только время. При выборке из него получаю такое значения : 
Код

1899-12-30 00:13:34.000

Мне надо получить только время, пытался отделить время при помощи CONVERT, используя стиль 108, но не получилось.
Подскажите пожалуйста, как в этой ситуации средствами SQL отделить время ?

Автор: Fortop 29.4.2008, 19:46
DATEPART()

Автор: Martin_8 29.4.2008, 21:55
Fortop, Посмотрел detepart() и насколько я понял, она принимает 1 параметр: часы либо минуты, либо секунды. И с её помощью, в моём случае, можно вернуть время, но только тремя значениями.
А как можно вернуть время (часы, минуты, секнды) одним значением ?  

Автор: Fortop 30.4.2008, 00:34
Martin_8, воспользоваться MSDN религия не позволяет?
http://msdn2.microsoft.com/en-us/library/ms174420.aspx
http://msdn2.microsoft.com/en-us/library/ms187928.aspx

У меня нет возможности сейчас проверить. Только завтра к обеду.

Но должен работать 
и этот вариант
Код

CONVERT(datetime, GETDATE(), 108)

и этот
Код

DATEPART(hh, GETDATE()) + ':' + DATEPART(mi, GETDATE()) + ':' + DATEPART(ss, GETDATE())

Автор: Martin_8 30.4.2008, 14:02
Fortop, спасибо за наводку. Написал вот так:
Код

CAST(DATEPART(hh, TimeTestLast) as varchar(2)) + ':' + CAST(DATEPART(mi, TimeTestLast) as varchar(2)) + ':' + CAST(DATEPART(ss, TimeTestLast) as varchar(2))


Автор: Magnifico 30.4.2008, 14:27
вариантик

Код

дата
select  left(convert(varchar(19), (cast(getdate() as smalldatetime)), 121),10)

и время

select right(convert(varchar(19), (cast(getdate() as smalldatetime)), 121),9)





        

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