2009-07-25 14 views

cevap

17

Hassas ve aralığı (yani önemli olan her şey ;-p) MSDN

:

.NET System.DateTime

DateTime değer türü 12:00 arasında değişen değerlerle tarihleri ​​ve saatleri temsil eder: 00 gece yarısı, 1 Ocak, 0001 Anno Domini (Ortak Dönem), 11:59:59 PM, 31 Aralık, 9999 MS (CE)

Zaman değerleri, 100 nanosaniyede birim olarak ölçülür keneler, ve belirli bir tarih GregorianCalendar Calenda içinde 12:00 gece yarısından itibaren 1 Ocak 0001 AD (CE) kene sayısı

Transact SQL datetime

Tarih Aralığı: 1 Ocak 1753, 31 Aralık aracılığıyla 9999

Doğruluk: 0,000, 0,003 veya 0,007 saniye

artışlarla yuvarlanır
+0

Mükemmel! C# 'da bir fonksiyon yazıp, stringin bir parametresini alıp datetime' a çevirmek istiyorum. İşlevin dönüş değerini DB'ye kaydetmek istiyorum. Fonksiyon boş bir dizgenin icabına bakmalı ve bu durumda boş dönmelidir. Ancak null eklenemez. Sorun nedir? – odiseh

+0

Muhtemelen basitçe veritabanı null temsil etmek için .NET kodu DBNull.Value kullanmak gerekir. –

+1

Ayrıca, saat dilimi yönü de vardır - DateTime ilişkili bir saat dilimine sahip olmasa da, * "yerel" mi yoksa UTC mi olduğunu öğrenebilir. –

11

Ayrıca SQL Server 2008 öncesi datetime2 kullanabilirsiniz cision 100ns de var. Aslında, .NET DateTime hassasiyetini eşleştirmek için tanıtıldı.

datetime2 (Transact-SQL)

+0

Not: bu varsayılan datetime2 duyarlığı ile (ikinci hassasiyete düşürülebilir). – user2864740

6

Evet.

SQL datetime türü C# eşdeğer Yani SqlDateTime

olduğunu SqlDateTime kullanmak için SQL çağrısı (elbette parametre koleksiyonu ile saklı işlem) tanımlar. Avantajı, veritabanı motorundan yürütme süresinden ziyade, komutun oluşturulmasından herhangi bir taşma veya aralık dışı hata yakalayabilir.