|
|
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
Есть поле Col003 тип данных varchar данные вида ч:мм:cc (длительность часы минуты секунды) как суммировать эти данные по всему столбцу чтобы получилась общая длительность времени. В экселе все корректно складывается (там есть тип данных "время"). Как это сделать в базе MS SQL 2000? (ну новичек я в SQL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 17:09:44 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
тип данных DATETIME или SMALLDATETIME ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 17:23:30 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
Переделываю, EM ругается - Warning: Data may be lost converting column 'Col003' from 'varchar(255)'. нажимаю YES, в результате получается по всему полю 01.01.1900 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 17:34:19 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
перевиди все в секунды да послагай,а сумму потом перевиди в года и столетия,не думай о мгновеньях свысока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 17:35:03 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
Может есть более красивые пути решения данной проблемы, но навскидку ничего не придумал... Если строго следовать формулировке задачи и не пользоваться вычислимыми полями и представлениями, то можно написать следующий запрос (для простоты понимания я разнес его на несколько подзапросов): Код: plaintext 1. 2. 3. 4. 5. Если cast не будет работать, - помотреть на формат записи и использовать convert/set dateformat. С уважением, Олег Аксенов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 17:39:23 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
в mssql 0 и 01.01.1900 00:00:00.000 одно и тоже.... если у вас показывает 01.01.1900 - это еще не значит что не правильно.... посмотрите время.... может оно у вас не отображается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2002, 18:32:17 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
Получается что при конвертировании данных из текстового файла в базу MS SQL, сиквел не понимает что это поле формата "время" (даже если я ему на это укажу) и присваивет ему тип varchar и далее начинаются проблемы, переделать тип данных в datetime я не могу, данные пропадают (вижу только 01.01.1900 ), почему все это происходит? Неужели поле должно содержать обязательно дату и время? Зачем для выполнение простой операции суммирования данных формата времени нужно все в секунды переделывать и далее городить огород (я все Эксель вспоминаю, там нет такой проблемы). Существуют ли другие способы более простые и понятные? Если можно по-конкретнее, если кто знает. Заранее спасибо всем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2002, 10:29:12 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2002, 12:18:05 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
declare @table1 table( time_str varchar(10) ) insert @table1 select '12:40:50' select cast( ('1.1.1900 ' + time_str) as datetime ) from @table1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2002, 13:32:46 |
|
||
|
Суммирование данных времени .... Помогите!!
|
|||
|---|---|---|---|
|
#18+
select cast(s/3600 as varchar(50))+':'+cast((s%3600)/60 as varchar(50))+':'+cast(s%60 as varchar(50)) from (select sum(cast(SUBSTRING(col003,1,CHARINDEX(':', col003)-1) as integer)*3600+ cast(SUBSTRING(col003,CHARINDEX(':', col003)+1,CHARINDEX(':', col003, CHARINDEX(':', col003)+1)-1-CHARINDEX(':', col003)) as integer)*60+ cast(SUBSTRING(col003,CHARINDEX(':', col003, CHARINDEX(':', col003)+1)+1, LEN(col003)-CHARINDEX(':', col003, CHARINDEX(':', col003)+1)) as integer)) as s from test_tbl) as tbl1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2002, 14:26:04 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3363&tid=1818249]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 296ms |

| 0 / 0 |
