J'ai un champ VARCHAR qui a des valeurs d'échantillon comme indiqué ci-dessous et je voudrais le convertir en HH: MM: SS. Suggestions?TSQL Convertir VARCHAR en TIME
151200
085800
080100
210100
083300
J'ai un champ VARCHAR qui a des valeurs d'échantillon comme indiqué ci-dessous et je voudrais le convertir en HH: MM: SS. Suggestions?TSQL Convertir VARCHAR en TIME
151200
085800
080100
210100
083300
sur sql-server essayez ceci:
declare @t varchar(10)
set @t='151200'
select left(@t,2) + ':' + substring(@t,3,2) + ':' + right(@t,2)
Declare @YourTable table (TimeStr varchar(25))
Insert Into @YourTable values
('151200'),
('085800'),
('080100'),
('210100'),
('083300')
Select *
,AsTime = cast(stuff(stuff(TimeStr,5,0,':'),3,0,':') as time)
From @YourTable
Retours
TimeStr AsTime
151200 15:12:00.0000000
085800 08:58:00.0000000
080100 08:01:00.0000000
210100 21:01:00.0000000
083300 08:33:00.0000000
EDIT:
Selon la version d'un étant donné que vous stockez des valeurs de temps dans un varchar (ce qui signifie que vous pourriez avoir de fausses données), vous pouvez utiliser:
try_convert(time,stuff(stuff(TimeStr,5,0,':'),3,0,':'))
Si vous utilisez SQL Server 2012 ou au-dessus et souhaitez stocker les valeurs en tant que types de données TIME, vous pouvez utiliser la fonction TIMEFROMPARTS.
Par exemple:
DECLARE @d VARCHAR(10)
SET @d = '151200'
SELECT TIMEFROMPARTS(LEFT(@d,2), SUBSTRING(@d,3,2), RIGHT(@d,2), 0)
Cela renverra TIME. Pour plus d'informations, s'il vous plaît voir ceci: https://msdn.microsoft.com/en-us/library/hh213398.aspx
ce que dbms? sql-server, postgres, mysql, ... – McNets