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

SQLCLR और डेटटाइम2

आपको अपनी फ़ंक्शन विधि के हस्ताक्षर में दिनांक समय प्रकार बदलने की आवश्यकता है। SQLDateTime डेटाबेस पर डेटटाइम के लिए मैप करता है।

System.DateTime अधिक सटीक है और कर सकता है डेटटाइम 2 पर मैप किया जाना चाहिए (लेकिन डिफ़ॉल्ट रूप से, इसे तैनाती स्क्रिप्ट में डेटटाइम के रूप में छोड़ दिया जाएगा)।

[SqlFunction(DataAccess = DataAccessKind.None)]
//OLD Signature public static SqlDateTime UTCToLocalDT(SqlDateTime val) 
public static DateTime UTCToLocalDT(DateTime val) {
   ...
}

फिर आप अपनी परिनियोजन स्क्रिप्ट को पढ़ने के लिए संशोधित कर सकते हैं।

CREATE FUNCTION [UTCToLocalDT]
(
    @dt [datetime2]
)
RETURNS [datetime2]
AS
    EXTERNAL NAME [SQLCLR].[MyCompany.SQLCLR.DateTimeHelpCLR].UTCToLocalDT
GO

अपने फ़ंक्शन को चलाने से अब आपको अधिक सटीक आउटपुट मिलना चाहिए।

DECLARE @input DateTime2, @output DateTime2
SET @input = '2010-04-12 09:53:44.48123456'
SET @output = YourDatabase.dbo.[UTCToLocalDT](@input)
SELECT @input, @output


  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 निष्पादन के साथ चरम से भिन्न होता है

  2. SQL सर्वर:माध्यिका (समूह द्वारा) की गणना कैसे करें?

  3. वर्तमान वर्कस्टेशन नाम लौटाएं जो SQL सर्वर (T-SQL) से जुड़ा है

  4. SQL में अस्वरूपित पाठ से दिनांक पार्स करें

  5. एसक्यूएल सर्वर में पंक्ति संख्या पर आंतरिक शामिल कैसे करें?