Kişi bilgileri gizlidir. Logo çalışanları görebilir.

INVOICE tablosunda bulunan TIME_ alanını nasıl normal zamana çevirebiliriz?

  Tiger/REST

Merhaba,


WCF servis ile aktarım yapmaktayız ama veri tabanından yani LG_FFF_DD_INVOICE tablosundan TIME_ alanı alarak normal zaman formatına getirmemiz gerekmektedir. Bu işlem için örnek kod paylaşabilir misiniz? 

Veya sorgu ile halledebiliyor ise onu da paylaşabilirmisiniz?


WCF LOBJECTS


Uluç Karadeniz

Merhaba,


Object metotları arasında UPackTime kullanarak bu işlemi yapmaktayız. WCF serviste bu metot mevcut mu onu bilmiyorum. Girdiğiniz Logo Zaman formatını size saat , dakika ve saniye olarak geri döndürür.


UPackTime(tm As Long, h, m, s)


Eğer WCF servis metotları arasında yoksa gerekli formül :,


Zaman = 2^24*Hour + 2^16*Minute + 2^8*Second + 2^0*Milisecond yani ;

Zaman = Milisaniye + 256 x Saniye + 65536 x Dakika + 16777216 x Saat


Kolay gelsin..


06/04/17 15:08


Kişi bilgileri gizlidir. Logo çalışanları görebilir.

Merhaba,


Teşekkürler cevabın için Uluç WCF serviste maalesef UPackTime bulunmamakta göndermiş olduğun formül 'den yola çıktım ama muvaffak olamadım.


06/04/17 16:24


Uluç Karadeniz

Umut selam,


Tarih için zamanında SQL'de ben şunu yazmıştım. Saat içinde yukarıdaki formülden sayıları değiştirmen yeterli olacaktır sanırım.


-- Mod fonksiyonu olan SQL'lerde –-

-- LOGO tarih formatı : 132186389  -- Gerçek Tarih 21.1.2017 --

SELECT year = (132186389 / 65536)           -- sonuc 2017
SELECT month = (MOD(132186389,65536) / 256  -- sonuc 1
SELECT day = MOD(Mod(132186389,65536),256)  -- sonuc 21

-- MOD hesaplama SQL üzerinde % olarak da yapılamkta ben SQL 2008 de bu şekilde yapabildim –

-- LOGO tarih formatı : 132186389  -- Gerçek Tarih 21.1.2017 --

SELECT year = (132186389 / 65536)        -- sonuc 2017
SELECT month = (132186389 % 65536) / 256 -- sonuc 1
SELECT day = ((132186389 % 65536) % 256) -- sonuc 21

Normal Tarih Formatından Logo Formatına çevirim :

-- Tarih = 2^16*Year + 2^8*Month + 2^0*Day yani ; 
-- Tarih = Gün + 256 x Ay + 65536 x Yıl

SELECT  21 + (256 * 1) + (65536 * 2017) -- sonuc 132186389




07/04/17 10:25


Kişi bilgileri gizlidir. Logo çalışanları görebilir.

Selam Uluç,


Teşekkürler


07/04/17 10:43


CENK

UPackTime işlevinin SQL karşılığı:


RIGHT('00'+CONVERT(VARCHAR,TIME_/16777216),2)+':'+RIGHT('00'+CONVERT(VARCHAR,(TIME_-(TIME_/16777216)*16777216)/65536),2)+':'+RIGHT('00'+CONVERT(VARCHAR,(TIME_-(TIME_/16777216)*16777216-((TIME_-(TIME_/16777216)*16777216)/65536)*65536)/256),2)


21/02/24 11:14


CENK

UPackTime işlevinin SQL karşılığı:


RIGHT('00'+CONVERT(VARCHAR,TIME_/16777216),2)+':'+RIGHT('00'+CONVERT(VARCHAR,(TIME_-(TIME_/16777216)*16777216)/65536),2)+':'+RIGHT('00'+CONVERT(VARCHAR,(TIME_-(TIME_/16777216)*16777216-((TIME_-(TIME_/16777216)*16777216)/65536)*65536)/256),2)


21/02/24 11:15

Cevap vermek için giriş yapmanız gerekmektedir.