Adding seconds to a Base Date

I am not yet savey with the data functions in Teradata, and I have the following issue:

I am consuming telcom information from Cisco and they store their transaction times as the number of seconds since 1/1/1970. So I have values that look like this:

'1484002904'. I have tried using the interval combinations with dividing down to months or even years but I lose the precision or it creates and overflow for the interval type. What I need to do is quite simple in theory. 1/1/1970 00:00:00 + 1484002904 seconds.

I know it will probably take a combination of functions/calculations, but how to I hold the precision and hit what I want

That gives you the year and the day (d) in the year (Julian day). Then you could create two arrays of month-days, one for leap years and one for other years, and use those to calculate the month and day. This could be done in an SQL function, but converting the Julian day to month-day would be a couple of long nested case operations; expressing this in a programming language would look like: if (yr%4) mo = d < 32 ? 1 : d < 60 ? 2 : d < 91 ? 3 : d < 121 ? 4 : d < 152 ? 5 : d < 182 ? 6 : d < 213 ? 7 : d < 244 ? 8 : d < 274 ? 9 : d < 305 ? 10 : d < 335 ? 11 : 12; and so on... You can imagine how long this would be with CASE expressions.

The time of day can be calculated from seconds % 86400 (seconds mod 86400 in SQL) - that gives you the number of seconds in the day. Divide by 3600 to get the hour; divide seconds-in-the-day % 3600 by 60 to get the minute, and seconds-in-the-day % 60 is the second.