S.A.
SQL üzerinde aşağıdaki gibi bir işlem yapıyorum ve gelen sonuc yanlış çıkıyor bunun nedeni ne olabilir.
SELECT CONVERT(int, CONVERT(varbinary, '0x' + 'FEC07B28')) AS KARTNO
Cikan hatalı Sonuc : 927085112
Olması gereken sonuc : 4274027304
Teşekkürler
Hex to Int Convert Problemi (çözüldü)
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Hex to Int Convert Problemi (çözüldü)
En son adelphiforumz tarafından 13 Nis 2011 05:55 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Hex to Int Convert Problemi
32 bit Integerlar en az -2,147,483,648 en cok 2,147,483,647 olabilir.
Unsigned integer veya 64 bit integer kullanmayı dene.
Unsigned integer veya 64 bit integer kullanmayı dene.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Hex to Int Convert Problemi
Ek olarak tırnak kullanmadan ve varbinary tipine çevirmeden direkt sayıya çevirebilirsiniz.
Kod: Tümünü seç
SELECT CONVERT(bigint, 0xFEC07B28)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Hex to Int Convert Problemi (çözülmedi)
Fakat sıkıntı şu
SELECT CONVERT(bigint, 0xFEC07B28) şeklinde kullandığımda sonuç doğru çıkıyor fakat
benim elimde FEC07B28 olarak gelen değer bir dosyadan varshar tütürmde ve 8 karakter olarak duruyor
benim bunu bir şekilde birleştirmem ve buna göre sonucu ekde etmem gerekiyor
bu dönüşümü nasıl yapmalıyım
SELECT CONVERT(bigint, '0x' + TableX.FieldY) budurumda hta alıyorum
convert işlemi nasıl olmalı
Teşekkürler
SELECT CONVERT(bigint, 0xFEC07B28) şeklinde kullandığımda sonuç doğru çıkıyor fakat
benim elimde FEC07B28 olarak gelen değer bir dosyadan varshar tütürmde ve 8 karakter olarak duruyor
benim bunu bir şekilde birleştirmem ve buna göre sonucu ekde etmem gerekiyor
bu dönüşümü nasıl yapmalıyım
SELECT CONVERT(bigint, '0x' + TableX.FieldY) budurumda hta alıyorum
convert işlemi nasıl olmalı
Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Hex to Int Convert Problemi (sorun devam ediyor)
Aslında pek araştırma yapmadan yazıyorum belki çok daha basit yolu vardır. Can sıkıntısından SQL Fonksiyonu şeklinde bir şeyler karaladım, umarım işinize yarayacaktır
. Ayrıca makale ve ipucu konusu da olabilirdi...şeklinde bir SQL Fonksiyonu yazıp kullanabilirsiniz.gibi..

Kod: Tümünü seç
CREATE FUNCTION HexToDec (@Sayi nvarchar(10))
RETURNS bigint
AS
BEGIN
DECLARE @Sonuc bigint, @S int
SET @Sonuc=0
IF (@Sayi is not Null) WHILE (@Sayi<>'') BEGIN
SET @S=Ascii(Left(@Sayi,1))
SET @Sayi=Right(@Sayi,Len(@Sayi)-1)
IF @S BETWEEN 48 AND 57 SET @S=@S-48
ELSE IF @S BETWEEN 65 AND 70 SET @S=@S-55
ELSE IF @S BETWEEN 97 AND 102 SET @S=@S-87
--ELSE --HATALI VERİ
SET @Sonuc=@Sonuc*16+@S
END
RETURN @Sonuc
END
Kod: Tümünü seç
select dbo.HexToDec('FEC07B28')
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: Hex to Int Convert Problemi (Çözüldü)
Yardımcı olan arkadaşlar teşekkürler
ben internette araştırırken şöyle bir kod buldum ve işimi gördü
belki ilerde birinin daha işine yarar.
select CONVERT(bigint, CONVERT(varbinary, right('000000000' + cast('FFFFFFFF' as varchar(10)), 10), 2))
ben internette araştırırken şöyle bir kod buldum ve işimi gördü
belki ilerde birinin daha işine yarar.
select CONVERT(bigint, CONVERT(varbinary, right('000000000' + cast('FFFFFFFF' as varchar(10)), 10), 2))
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana