Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

डेटाटाइम2 डेटा प्रकार को छोटे डेटाटाइम डेटा प्रकार में बदलने के परिणामस्वरूप एक आउट-ऑफ-रेंज मान प्राप्त हुआ।\r\nविवरण को समाप्त कर दिया गया है

त्रुटि की दृष्टि से, आपका डेटाबेस SmallDateTime को दिनांक प्रकार के रूप में उपयोग कर रहा है। इसका न्यूनतम मान 1900-जनवरी-01 है। मान लें कि आपकी इकाई नीचे की तरह कुछ है

  public class Game
  {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid GameId { get; set; }

    [Required]
    public DateTime GameTime { get; set; }
  }

आपका गेमटाइम मान शून्य नहीं है, इसलिए जब आप इसके लिए कोई मान निर्धारित नहीं करते हैं, तो यह हमेशा दिनांक समय होगा। न्यूनतम जो 0000-जनवरी-01 है। यह SmallDateTime की सीमा से बाहर है, लेकिन यह DateTime2 की सीमा में है। तो ईएफ SQL सर्वर पर डेटटाइम 2 एसक्यूएल प्रकार पास करने का प्रयास करेगा। चूंकि आपका डेटाबेस SmallDateTime का उपयोग कर रहा है, इसलिए आपको अपने प्रश्न में दिखाई गई त्रुटि दिखाई देगी।

समस्या को हल करने के लिए, आपके पास निम्नलिखित विकल्प हैं जिनके बारे में मैं सोच सकता हूँ:

  • क्षेत्र को अशक्त बनाओ। (आपको हमेशा जांचना होगा कि आपकी इनपुट तिथियां SmallDateTime सीमा के भीतर हैं या नहीं।)

  • या SQL सर्वर में दिनांक प्रकार को DateTime2 में बदलें

  • या डेटाबेस बनाते समय EF को DateTime2 डेटा प्रकार का उपयोग करने के लिए बाध्य करें। कोड नीचे कुछ जैसा होगा। (यह विधि आपके संदर्भ वर्ग के अंदर होनी चाहिए।)


  protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity()
            .Property(t => t.GameTime )
            .HasColumnType("datetime2");
    }
  • अपने एप्लिकेशन में छोटे डेटाटाइम से मेल खाने के लिए अपनी डेटटाइम प्रॉपर्टी न्यूनतम मान सेट करने के लिए कनवर्टर सहायक लिखें।

  • डेटटाइम 2 (एप्लिकेशन के अंत से, लेकिन डेटाबेस के अंत में डेटाटाइम 2) को स्मालडेटटाइम में बदलने के लिए डेटाबेस में एक ट्रिगर लिखें।

उम्मीद है, मैं आपके प्रश्न को ठीक से समझ गया हूँ, और मेरा उत्तर मदद करता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL उदाहरण) में 'datetimeoffset' को 'datetime2' में बदलें

  2. MSSQL PRINT आउटपुट को वेरिएबल में कैसे स्टोर करें

  3. SQL सर्वर पर चल रहे प्रश्नों की सूची बनाएं

  4. SQL सर्वर में 1 लाख पंक्तियों को हटाना

  5. जॉइन क्राइटेरिया में एसक्यूएल फ़िल्टर मानदंड या जहां क्लॉज अधिक कुशल है