Bir sql sorgusu ile performans nedenleriyle benim C# kodu yerine gidiyorum:Bir datetime'yi ddMMyy olarak nasıl seçebilirim, yani iki basamaklı bir yıl mı?
CreatedAt.ToString("ddMMyy", System.Globalization.CultureInfo.InvariantCulture)
140115
olarak (bugün için) oluşturma-tarihini döndürür. C# 'da yeterince basit ama bunu T-SQL'de nasıl elde ederim? Ben denedim
:
neredeyse doğru olmakla yıl dört basamak yerine iki sahiptirREPLACE(CONVERT(CHAR(10), ChargeArrival.CreatedAt, 103), '/', '')
yüzden 14012015
yerine 140115
.
Buna daha iyi performans göstereceği ikna değilim bunu kullanabilirsiniz . Veri türü dönüştürme, SQL Server'da da ücretsiz değildir. –
@AaronBertrand: Bu, optimizasyonun bir parçası olan tarih nesnesi değil, nesnenin diğer veritabanı sorguları tarafından başlatılan karmaşık alanları içerdiği LINQ-To-SQL'in yerini alır. Şimdi tüm ilgili alanları içeren bir görünüm kullanıyorum. 100 satır seçmek için 20 saniye sürdü (100 nesne yükle), şimdi bir saniyenin sadece bir kısmı. –
Tamam, açık değildi, verimlilik problemi sadece C# biçiminde biçimlendirme uygulamak gibi geliyordu. –