Ich habe nun eine recht simple UNIX_timestam-stored procedure erstellt. Mit dem Ergebnis von CONVERT(FLOAT, @utc) * 86400 konnte ich leider nichts anfangen. die SP erzeugt nun das gleiche Ergebnis wie die delphi-funktion IntToStr(DateTimeToUnix(Now))
SQL-Code:
CREATE PROCEDURE sp_timestamp
AS
DECLARE @jahr int
DECLARE @sec int
SELECT @jahr = 1970
SELECT @sec = 0
WHILE (CONVERT (int, DATEPART (yyyy, getdate())) > @jahr)
BEGIN
if ( @jahr % 4 ) = 0 AND (@jahr % 100)<>0 OR (@jahr % 1000) = 0
SELECT @sec = @sec + 366*24*60*60
ELSE SELECT @sec = @sec + 365*24*60*60
SELECT @jahr = @jahr +1
END
SELECT @sec = @sec + (CONVERT (int, DATEPART (dy, getdate()))-1)*24*60*60
SELECT @sec = @sec + CONVERT (int, DATEPART (hh, getdate()))*60*60
SELECT @sec = @sec + CONVERT (int, DATEPART (mi, getdate()))*60
SELECT @sec = @sec + CONVERT (int, DATEPART (ss, getdate()))
PRINT @sec
PRINT 'Sekunden sind vergangen seit dem 01.01.1970 00:00:00'
SELECT getdate()
ERGEBNIS:
1129761963
Sekunden sind vergangen seit dem 01.01.1970 00:00:00
---------------------------
2005-10-19 22:46:03.187
(1 row(s) affected)
Jetzt muss nur noch das ganze in eine HEX-zahl umgewandelt werden. Gibt es dafür wirklich keine T-
SQL Funktion ?
Schönen Gruß
Robert