2014-12-03 3 views
-1

У меня есть 2 поля имени FROM и TO. Оба поля будут иметь время во втором (например, FROM = 20520 и TO = 39360). Я хотел бы преобразовать и обновить эти поля до формата времени (например, FROM = 20520 становится FROM = 05: 420: 00: 00 и TO = 39360 становится TO = 10: 56: 00: 00) Спасибо.конвертировать поле обновления во второй раз

+0

Какой системы базы данных вы используете? SQL Server, Oracle, MySQL и т. Д.? –

+0

sql server 2008 – user1203397

+0

Если вы уже в 2008 году, почему бы вам не использовать тип данных '' time' (http://msdn.microsoft.com/en-us/library/bb677243.aspx) вместо 'int '? Является ли желаемый результат 'time' или' varchar'? –

ответ

0

Ниже приведен пример того, как вы преобразовываете целые числа во времени, вы можете обойти это, чтобы обновить свои значения. @T - ваше текущее значение.

declare @T int 
set @T = 205020 

select dateadd(hour, (@T/1000000) % 100, 
    dateadd(minute, (@T/10000) % 100, 
    dateadd(second, (@T/100) % 100, 
    dateadd(millisecond, (@T % 100) * 10, cast('00:00:00' as time(2)))))) 

Редактировать

вам нужно всего лишь секундной часть.

declare @T int 
set @T = 205020 


select dateadd(second, (@T/100) % 100,cast('00:00:00' as time(2))) 

второй Edit для громады

update Yourtable 
set FromTime = dateadd(second, ([FROM]/100) % 100,cast('00:00:00' as time(2))), 
ToTime = dateadd(second, ([TO]/100) % 100,cast('00:00:00' as time(2))) 
where {YourFilter for you 10000 records} 
+0

Я могу использовать это, но проблема в том, как конвертировать и обновлять более 10000 записей, а не одну запись – user1203397

+0

Кто-нибудь может помочь мне по этой проблеме? – user1203397

+0

Примените это навалом. –

Смежные вопросы