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

Откуда:
Сообщений: 681
Промежуток времени хранится в таком виде: 00:00:40, 00:20:40, 11:20:40 и т.д.

Нужно перевести это, допустим в int, что бы впоследствии можно было сложить эти значения. Какой функцией это можно сделать?
16 янв 12, 18:44    [11913600]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такую строку?  [new]
Руки-крюки
Member

Откуда:
Сообщений: 681
Время хранится в VARCHAR(50)
16 янв 12, 18:51    [11913635]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такую строку?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Руки-крюки, заменить двоеточие на точку, а потом PARSENAME()
16 янв 12, 18:55    [11913660]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такую строку?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
ну или просто SUBSTRING вообще
16 янв 12, 18:56    [11913665]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такую строку?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
1.
ALTER TABLE <MyTable> ALTER COLUMN
	<MyColumn> Time(0) [NOT] NULL

2. А далее тупо, хоть аггрегацию: (если не будет переполнения)
DECLARE	@Table TABLE (
	 ID	Int	Identity PRIMARY KEY
	,Col	Time(0)	NOT NULL)
INSERT	@Table VALUES
 ('00:00:40')
,('00:20:40')
,('11:20:40')

SELECT	 Convert(Time(0),DateAdd(Second,Sum(DateDiff(Second,Col,0)),0))
FROM	@Table
Или просто:
DECLARE	 @Time1	Time(0) = '00:00:40'
	,@Time2	Time(0) = '00:20:40'
SELECT	DateAdd(Second,DateDiff(Second,0,@Time1),@Time2)

А вообще мало условий для задачи.
16 янв 12, 20:09    [11914049]     Ответить | Цитировать Сообщить модератору
 Re: Как распарсить такую строку?  [new]
Руки-крюки
Member

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

То что нужно. Спасибо.
16 янв 12, 20:40    [11914188]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить