Logo Yazılım SQL İçin Gerekli Fonksiyonlar

Kullanıcı avatarı
Tarkan VURAL
Doğrulandı
Site Admin
Mesajlar: 56
Kayıt: 22 Haz 2023, 00:03
Lokasyon: İstanbul
Web Sitesi: http://www.tarkanvural.com.tr
Meslek: Yazılım ve Veri Tabanı Uzmanı
Adınız: Tarkan
Soyadınız: VURAL

Logo Yazılım SQL İçin Gerekli Fonksiyonlar

Mesaj gönderen Tarkan VURAL »

Logo veri tabanı tablolarında bazı yerlerde tarih hya da zaman biçimi sayısal şekliyle kullanılır. Bunları sorgularımızda kullanırken bazen convert etmek gerekiyor. Bunun için örnekteki fonksiyonlardan yararlanabiliriz. Aslında bu fonksiyonlardan üçü eski sürüm DB içerisinde kullanılıyordu. Nedense yeni kurulumlarda artık bu fonksiyonları bazen bulamıyorum. Bu sebeple yedeklediğim arşivimden eksikleri tamamlıyorum.

Aşağıdaki fonksiyonlar Logo standart tarih ve zaman fonksiyonlarıdır :

LG_INTTODATE
Sayısal değeri tarihi biçimine çevirir.

Kod: Tümünü seç

CREATE FUNCTION [dbo].[LG_INTTODATE](@LDATE INT)
       RETURNS DATETIME
AS
BEGIN
 DECLARE @DATE    DATETIME,
         @DD      INT,
         @MM      INT,
         @YYYY    INT,
         @DATESTR VARCHAR(12)
 SELECT @DD   = ((@LDATE%65536)/256)
 SELECT @MM   = (@LDATE%65536)%256
 SELECT @YYYY = (@LDATE/65536)
 SELECT @DATESTR = CAST(@DD AS VARCHAR(2))+'-'+
                   CAST(@MM AS VARCHAR(2))+'-'+
                   CAST(@YYYY AS VARCHAR(4))
 SELECT @DATE = CONVERT(DATETIME,@DATESTR,102)
 RETURN(@DATE)
END
Örnek kullanım :
SELECT dbo.LG_INTTODATE('132580630')
Sonuç : 2023-05-22 00:00:00.000


LG_INTTOTIME
Sayısal değeri zaman biçimine çevirir.

Kod: Tümünü seç

CREATE FUNCTION [dbo].[LG_INTTOTIME](@LDATE INT)
       RETURNS VARCHAR(12)
AS
BEGIN
 DECLARE @TIME    DATETIME,
         @HH      INT,
         @MM      INT,
         @SS     INT,
         @TIMESTR VARCHAR(12),
         @RETSTR VARCHAR(12)
 SELECT @HH   = (@LDATE-(@LDATE%65536))/65536/256
 SELECT @MM   = ((@LDATE-(@LDATE%65536))/65536-((@LDATE-(@LDATE%65536))/65536/256)*256)
 SELECT @SS = (((@LDATE%65536)-((@LDATE%65536)%256))/256)
 SELECT @TIMESTR = CAST(@HH AS VARCHAR(2))+':'+
                   CAST(@MM AS VARCHAR(2))+':'+
                   CAST(@SS AS VARCHAR(2))
 SELECT @TIME = CONVERT(DATETIME,@TIMESTR,101)
 SELECT @RETSTR = CONVERT(VARCHAR,@TIME,108)
 RETURN(@RETSTR)
END
Örnek kullanım :
SELECT dbo.LG_INTTOTIME('235933709')
Sonuç : 14:16:16


LG_TIMETOINT
Zaman değerini sayısal zaman biçimine çevirir.

Kod: Tümünü seç

CREATE FUNCTION [dbo].[LG_TIMETOINT](@HH INT,@MM INT,@SS INT)
       RETURNS INT
AS
BEGIN
 DECLARE @TIME    INT
 SELECT @TIME   = (@HH*65536*256+@MM*65536+@SS*256)
 RETURN(@TIME)
END
Örnek kullanım :
SELECT dbo.LG_TIMETOINT('10','15','28')
Sonuç : 168762368

Aşağıdaki fonksiyonu da ek olarak geliştirdim : 
LG_DATETOINT
Tarih değerini sayısal tarih biçimine çevirir.

Kod: Tümünü seç

CREATE FUNCTION [dbo].[LG_DATETOINT](@LDATE DATE)
       RETURNS INT
AS
BEGIN
 DECLARE @INTDATE    INT,
         @DD      INT,
         @MM      INT,
         @YYYY    INT 

 SELECT @DD   = DAY(@LDATE)*1
 SELECT @MM   = MONTH(@LDATE)*256 
 SELECT @YYYY = YEAR(@LDATE)*65536
 SELECT @INTDATE = @DD+@MM+@YYYY 
 RETURN(@INTDATE)
END
Örnek kullanım :
SELECT dbo.LG_DATETOINT('2023-05-23')
Sonuç : 132580631
Konu Dışı
Logo Yazılım, Özel Yazılım, Entegrasyon işlemleri, Excel VBA kodlama, Raporlama, Eğitim.. gibi konulardaki destek ihtiyaçlarınız içinhelpdesk@evnyazilim.com.trile irtibata geçebilirsiniz.
Murat OSMA
Doğrulandı
Mesajlar: 7
Kayıt: 04 Tem 2023, 23:12
Lokasyon: İstanbul
Web Sitesi: https://excelarsivi.com
Meslek: Eğitim Danışmanı
Adınız: Murat
Soyadınız: OSMA

Re: Logo Yazılım SQL İçin Gerekli Fonksiyonlar

Mesaj gönderen Murat OSMA »

Teşekkürler abi ellerine sağlık.
software
Mesajlar: 1
Kayıt: 17 Ağu 2023, 13:24
Web Sitesi: https://biyometik-rfid-guvenlik.medium.com
Meslek: Yazılım Test Edicisi
Adınız: None
Soyadınız: None

Re: Logo Yazılım SQL İçin Gerekli Fonksiyonlar

Mesaj gönderen software »

deneyeceğim teşekkürler