Thursday, May 14, 2009

Logo Unity: Veritabanında integer olarak tutalan zaman bilgisinin gösterilmesi

Logo programlarının veritabanına integer olarak kaydettiği zaman bilgisini aşağıdaki function ile zaman biriminden görebilirsiniz.

CREATE FUNCTION [dbo].[EXTRACTINTDATE](@PDATE AS INT)
RETURNS VARCHAR(10)
AS
BEGIN
DECLARE @FHOUR INT
DECLARE @FMINUTE INT
DECLARE @FSECOND INT
DECLARE @HOURSTR VARCHAR(2)
DECLARE @MINSTR VARCHAR(2)
DECLARE @FSECSTR VARCHAR(2)


SET @FHOUR = CONVERT(INT,@PDATE/16777216,103)
SET @FMINUTE = (@PDATE-(@FHOUR*16777216))/65536
SET @FSECOND = (@PDATE-((@FMINUTE*65536)+(@FHOUR*16777216)))/256

SET @HOURSTR = CONVERT(VARCHAR(2), @FHOUR, 103)
SET @MINSTR = CONVERT(VARCHAR(2), @FMINUTE, 103)
SET @FSECSTR = CONVERT(VARCHAR(2), @FSECOND, 103)

RETURN (@HOURSTR + ':' + @MINSTR + ':' + @FSECSTR)
END


Örnek Kullanım:

select TIME_,[dbo].[EXTRACTINTDATE](TIME_) from LG_XT019_109


Sonuç:

TIME_ NEW_TIME
168634208 10:13:39
168636156 10:13:46
220538930 13:37:40
238367942 14:53:52
238762111 14:59:56

No comments: