En iyi yanıtlayıcılar
tablo alanı format değişikliği

Soru
-
Merhabalar,
ms sql server 2005 üzerinde mevcut bir tabloya ait alanın formatını nasıl değiştirebilirim?
Şöyle ki:
oracle sql server'dan ms sql servere linked server tanımlı. Oracle'daki veriyi ms sql server'a ait STATISTICS_OVIS tablosuna kaydediyorum.
Tablo adı: STATISTICS_OVIS
tablo alanları;
[id] [int] IDENTITY(1,1) NOT NULL,
[MSC] [nvarchar](255) NOT NULL,
[WRITE_TIME] [datetime] NOT NULL, .....Bu durumda WRITE_TIME alanı, [datetime] tipinde dd.MM.yyyy hh:mm şeklinde görünmekte.
Bu alanın [nvarchar](255) tipinde dd.MM.yyyy formatına dönüştürüp update etmem gerekmekte.
Nasıl yapabilirim? Yardımlarınız için şimdiden teşekkür ederim, Saygılarımla...
Yanıtlar
-
Barış Bey ve Ekrem Bey ilginiz ve verdiğiniz cevaplar için öncelikle teşekkür ederim.
Sorunun içerisinde de belirttiğim üzere ms sql server 2005 kullanıyorum. Dolayısıyla 2005 sql server'da datetime veri tipi mevcut. 2008 sql server 'dan itibaren date ve time veri tipleri mevcut.
Problemi şu şekilde çözdüm: (Benzer sorunları yaşayacak arkadaşlara fikir verebileceği için paylaşıyorum.)
stored procedure içerisine,
insert into STATISTICS_OVIS (MSC,WRITETIME,...)
select (MSC,CONVERT(nvarchar(255), WRITE_TIME, 104),...)
from OPENQUERY (linker_Server_Adi, 'select * from oracle_serverdaki_tablo_adi')
yazdım.
Ayrıca sql server 2005 üzerine bulunan STATIC_OVIS tablosunun WRITE_TIME alanının veritipini de varchar(10) yaptım.
Gayet başarılı ve hızlı bir şekilde işlemektedir. Saygılarımla...
- Yanıt Olarak İşaretleyen Tuna KOÇ 16 Mayıs 2014 Cuma 12:39
Tüm Yanıtlar
-
-
Bir şey sormak istiyorum. Sadece dd.MM.yyyy olarak tutacaksanız, tipini neden date olarak değiştirmiyorsunuz ?
Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Bana Ulaşmak İçin: Mail Gönder
-
Neden ısrarla NVARCHAR'a dönüştürmek istiyorsun bahsettiğin alanı?
Barış'ın dediği gibi sadece DATE değerini kullanmak istiyorsan ve SQL Server Instance'ının versiyonu da 2008'den yukarıysa DATE veritipini kullanabilirsin.
Ekrem Önsoy - MCDBA, MCITP:DBA+DBD, MCSD.Net, MCSE, ITILv3 | http://ekremonsoy.blogspot.com
-
Barış Bey ve Ekrem Bey ilginiz ve verdiğiniz cevaplar için öncelikle teşekkür ederim.
Sorunun içerisinde de belirttiğim üzere ms sql server 2005 kullanıyorum. Dolayısıyla 2005 sql server'da datetime veri tipi mevcut. 2008 sql server 'dan itibaren date ve time veri tipleri mevcut.
Problemi şu şekilde çözdüm: (Benzer sorunları yaşayacak arkadaşlara fikir verebileceği için paylaşıyorum.)
stored procedure içerisine,
insert into STATISTICS_OVIS (MSC,WRITETIME,...)
select (MSC,CONVERT(nvarchar(255), WRITE_TIME, 104),...)
from OPENQUERY (linker_Server_Adi, 'select * from oracle_serverdaki_tablo_adi')
yazdım.
Ayrıca sql server 2005 üzerine bulunan STATIC_OVIS tablosunun WRITE_TIME alanının veritipini de varchar(10) yaptım.
Gayet başarılı ve hızlı bir şekilde işlemektedir. Saygılarımla...
- Yanıt Olarak İşaretleyen Tuna KOÇ 16 Mayıs 2014 Cuma 12:39