Powershell und UNIXTIME
SQL und UNIXTIME
Unixtime 2 DateTime
Select dateadd(S, [unixtime], '1970-01-01') From [Table]
DateTime 2 UnixTime
Select (datediff(second,'1970-01-01 00:00:00.000',[TimeStamp])) From [Table]
Das funktioniert nur bei Unixtime in Second. Aber es existiert auch in milliseconds, microseconds und nanoseconds. Hierzu gibt es eine allgemein funktionstüchtige Funktion:
CREATE FUNCTION [dbo].[fn_tsConvert] (@ts bigint) RETURNS DATETIME2(7) AS BEGIN DECLARE @ts2 DATETIME2(7) -- MILLISECOND IF(LEN(@ts) = 13) SET @ts2 = DATEADD(HH,-4,DATEADD(MILLISECOND, @ts % 1000, DATEADD(SECOND, @ts / 1000, CAST('1970-01-01' as datetime2(7))))) -- MICROSECOND IF(LEN(@ts) = 16) SET @ts2 = DATEADD(HH,-4,DATEADD(MICROSECOND, @ts % 1000000, DATEADD(SECOND, @ts / 1000000, CAST('1970-01-01' as datetime2(7))))) -- NANOSECOND IF(LEN(@ts) = 19) SET @ts2 = DATEADD(HH,-4,DATEADD(NANOSECOND, @ts % 1000000000, DATEADD(SECOND, @ts / 1000000000, CAST('1970-01-01' as datetime2(7))))) RETURN @ts2 END
siehe auch: Epoch & Unix Timestamp Conversion Tools