1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CREATE FUNCTION dbo.get_ISO8601_datetimezone
(@_date datetime)
RETURNS TABLE
AS
RETURN
(
SELECT CONVERT(char(23), @_date, 126)
+ CASE
WHEN DATEDIFF(minute, GETUTCDATE(), GETDATE()) >= 0
THEN '+' + REPLICATE('0', 2 - LEN(DATEDIFF(hour, GETUTCDATE(), GETDATE())))
+ CAST(DATEDIFF(hour, GETUTCDATE(), GETDATE()) AS varchar(2))
+ ':' + CASE
WHEN DATEDIFF(minute, GETUTCDATE(), GETDATE()) % 60 = 0 THEN '00'
ELSE CAST(DATEDIFF(minute, GETUTCDATE(), GETDATE()) % 60 AS char(2))
END
ELSE '-' + REPLICATE('0', 2 - LEN(ABS(DATEDIFF(hour, GETUTCDATE(), GETDATE()))))
+ CAST(ABS(DATEDIFF(hour, GETUTCDATE(), GETDATE())) AS varchar(2))
+ ':' + CASE
WHEN DATEDIFF(minute, GETUTCDATE(), GETDATE()) % 60 = 0 THEN '00'
ELSE CAST(ABS(DATEDIFF(minute, GETUTCDATE(), GETDATE())) % 60 AS char(2))
END
END AS ISO8601_datetimezone
) |
Partager