AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL/Systemzeit per Stored Procedure auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL/Systemzeit per Stored Procedure auslesen

Ein Thema von robroy85 · begonnen am 19. Okt 2005 · letzter Beitrag vom 20. Okt 2005
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: SQL/Systemzeit per Stored Procedure auslesen

  Alt 20. Okt 2005, 07:25
Mit einer kleinen Anpassung bei GetUtcDate wird die Zeitbasis auf den Beginn des Jahres 1900 1970 umgestellt:

SQL-Code:
CREATE PROCEDURE DateTimeToUnix
  @unixtime FLOAT OUTPUT
AS
BEGIN
  DECLARE @BiasInMinutes INT, @RefDate DATETIME
  SELECT @RefDate = CONVERT(DATETIME, '19700101')
  /* ab MSSQL 2000 gibt es dann GetUtcDate */
  EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
    'SYSTEM\CurrentControlSet\Control\TimeZoneInformation',
    'ActiveTimeBias',
    @BiasInMinutes OUTPUT
  SELECT @unixtime = CONVERT(FLOAT, DATEADD(MINUTE, @BiasInMinutes, GetDate()) - @RefDate)
END
Für die Konvertierung in einen Hex-String muss das hier herhalten:

SQL-Code:
/* ab MSSQL 2000 gibt es 64-bit integers */ 
CREATE PROCEDURE IntToHex
  @int INT,
  @len INT,
  @hex VARCHAR(8) OUTPUT AS
BEGIN
  DECLARE @i INT, @q INT, @nibble INT

  IF @len > 8 SELECT @len = 8
  SELECT @hex = ''
  WHILE (@int > 0) or (len(@hex) < @len)
  BEGIN
    SELECT @nibble = @int % 16
    SELECT @int = @int / 16
    SELECT @hex = substring('0123456789abcdef', @nibble + 1, 1) + @hex
  END
END
Und überprüfen kann man es so:

SQL-Code:
DECLARE @f FLOAT, @sec INT, @frac INT, @hs VARCHAR(8), @hf VARCHAR(2)
EXEC DateTimeToUnix @f OUTPUT
SELECT @sec = FLOOR(@f * 86400)
SELECT @frac = Floor((@f * 86400 - @sec) * 256)
EXEC IntToHex @sec, 8, @hs OUTPUT
EXEC IntToHex @frac, 2, @hf OUTPUT
SELECT @hs + @hf
Grüße vom marabu
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz