Arkadaşlar merhaba,
.Net Core da kendimi geliştirmek için proje yazıyorum.
SQL de migration ile bir database oluşturdum.
Tablonun birinde DateTime türünde veri var.
Tabloya ekleme işlemi yapmak isterken aşağıda ki hatayı fırlatıyor.
DateTime2 sorununu nasıl çözebilirim.
"The version of SQL Server in use does not support datatype 'datetime2'." böyle bir hata alıyorum.
Not: İçerisinde datetime olmayan model lerim de ekleme sorunu yok.
.Net Core ile yaptığım proje de SQL hatası alıyorum. Yardımcı olabilir misiniz
8
●232
- 26-11-2023, 12:16:19SQL 'de Datetime ve Datetime2 arasındaki fark var. Datetime2 biraz daha hassas timespan tutmak için. Örnek olarak Eğer SQL de aşağıdaki queryleri yapıştırıp denerseniz farkı görürsünüz ;
DECLARE @myDatetime datetime = '2023-11-26T12:34:56.789'; SELECT @myDatetime AS 'Datetime';
-- datetime2 kullanımı DECLARE @myDatetime2 datetime2(3) = '2023-11-26T12:34:56.789'; SELECT @myDatetime2 AS 'Datetime2';
Sizin durumunuz için Code First yapı kullanıyorsunuz muhtemelen. Veri tipinizi .netcore tarafında yani entity'nizi Datetime olarak ayarlayın sql de migration attığığınızda datetime2 olmadığından emin olun.
eğer öyle olduğunu görürseniz veritipini sql'e gidip datetime formatına çekin sorununuz düzelecektir. - 26-11-2023, 12:24:23Aslında tam da bunu denedim. Evet code first yapı kullanıyorum. Class da DateTime eklememe rağmen migration da DateTime2 olarak geliyor. Manuel olarak migration ı datetime olarak düzenledim.redgen01 adlı üyeden alıntı: mesajı görüntüle
SQL de de aslında datetime görünüyor. Neye göre DateTime2 yi baz alıyor anlamadım. - 26-11-2023, 12:24:52Filtrelemeler de, raporlar da sorun yaşarmıyımHayrettin adlı üyeden alıntı: mesajı görüntüle
- 26-11-2023, 12:30:24Evet yaşarsın. Tarih verisini spesifik durumlar harici string olarak saklamak saçmalıktır.altun92 adlı üyeden alıntı: mesajı görüntüle
- 26-11-2023, 12:34:50altun92 adlı üyeden alıntı: mesajı görüntüle
Evet Kütüphane olarak Microsoft.EntityFrameworkCore.SqlServer kullandığından emin ol. Entity'nin üstüne de tipi belirlemek içinde propertyy'nin üstüne gidip şunu kullan;
[Column(TypeName = "datetime")]