logo dan döviz kuru girerken 16/4/2024 yazılı ise veri tabanına 132645904 --- 17/4/2024 132645905 --- 18/4/2024 132645906 yazıyor
manuel olarak tabloya 132645907 yazarsan logo tarafında tarih olarak 19/4/2024 görünüyor.
yazdığım kodda bir adet datetime componenti var Shortdk ve sadece date secili
logo tarihi nasıl tam sayıya cevirmiş olabilir bilgisi olan yardımcı olabilirmi
procedure TForm1.Btn_Logo_AktarClick(Sender: TObject);
var trh:Integer;
begin
trh:= DateTimeToUnix(kur_tarih.Date); // burada tarih tam sayıya cevriliyor
showmessage(trh.ToString);
//Logo_sorgu.SQL.Add() ;
//stringgrid1.Cells[sütun_no,satir_no]
//showmessage(stringgrid1.Cells[2,1]);
end;
ekran görüntüsü
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
(18-04-2024, Saat: 19:05)cinarbil Adlı Kullanıcıdan Alıntı:
(18-04-2024, Saat: 17:59)RAD Coder Adlı Kullanıcıdan Alıntı: UnixToDateTime
Allah razı olsun
trh:= DateTimeToUnix(kur_tarih.Date); // burada tarih tam sayıya cevriliyor
bu kod ile ceviriyorum ama mesajda yazdığım gibi logonun tamsayısı 9 haneli benim cevirdiğim 12 Haneli
logo 32 bit tamsayıya biz 64 bit tam sayıya mı ceviriyoruz anlayamadım.
Merhabalar,
Acaba bu şekilde fonksyionlar var mı kontrol edermisiniz.
[dbo].[LG_INTTODATE]
[dbo].[LG_DATETOINT]
CREATE FUNCTION [dbo].[LG_INTTODATE] (@DEGER INT)
RETURNS datetime
AS
BEGIN
DECLARE @GUN VARCHAR(2), @AY VARCHAR(2), @YIL VARCHAR(4)
DECLARE @SONUC datetime
SELECT
@GUN=CAST((CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)-(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/256*256)) AS VARCHAR(3))
SELECT
@AY=CAST(((CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)-(65536*(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/65536)))-(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)-(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/256*256)))/256 AS VARCHAR(3))
SELECT
@YIL=CAST((CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/65536) AS VARCHAR(6))
SET @GUN=CASE WHEN LEN(@GUN)<2 THEN '0'+@GUN ELSE @GUN END
SET @AY=CASE WHEN LEN(@AY)<2 THEN '0'+@AY ELSE @AY END
SONUC:
IF @DEGER<>0
BEGIN
SET @SONUC=CONVERT(DATETIME, @YIL + '-' + @AY + '-' + @GUN + ' 00:00:00', 102)
END
IF @DEGER=0
SET @SONUC= NULL
RETURN @SONUC
END
GO
CREATE FUNCTION [dbo].[LG_DATETOINT] (@date DATETIME)
RETURNS INT
AS
BEGIN
DECLARE @GUN INT, @AY INT, @YIL INT
DECLARE @SONUC INT
SET @YIL = YEAR(@date)
SET @AY = MONTH(@date)
SET @GUN = DAY(@date)
SET @SONUC = (@YIL * 65536) + (@AY * 256) + @GUN
IF @SONUC = 0
SET @SONUC = NULL
RETURN @SONUC
END
GO