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

SQL सर्वर दिनांक स्वरूप उपयोगकर्ता निर्भर?

यदि आपको स्ट्रिंग्स का उपयोग करके डेटाटाइम निर्दिष्ट करने की आवश्यकता है, तो आपको सुरक्षित . का उपयोग करना चाहिए , भाषा-स्वतंत्र प्रारूप।

SQL सर्वर में, यह ISO-8601 प्रारूप (थोड़ा अनुकूलित) है, और यह मूल रूप से DATETIME के लिए दो सुरक्षित स्वरूपों का समर्थन करता है जो हमेशा काम करता है - आपकी भाषा, क्षेत्रीय और दिनांक स्वरूप सेटिंग पर ध्यान दिए बिना:

YYYYMMDD              (e.g. 20121231  for 31st of December 2012)  if you need date only

YYYY-MM-DDTHH:mm:ss   (e.g. 2012-12-31T21:05:00 for 31st of December 2012, 9:05pm)

नोट:

  • पहले दिनांक-केवल प्रारूप में कोई डैश नहीं . है या सीमांकक!

  • दूसरे प्रारूप में दिनांक के लिए डैश हैं (इसे भी छोड़ा जा सकता है), और एक निश्चित T है स्ट्रिंग के दिनांक और समय भाग के बीच सीमांकक के रूप में

अपडेट करें: आपकी पिछली टिप्पणी के अनुसार (दो उपयोगकर्ताओं के लिए अलग-अलग डिफ़ॉल्ट भाषाओं पर) - इसे आजमाएं:

-- this is how your `SA` interprets the string as datetime....
SET LANGUAGE english
SELECT CAST('2012-11-30 23:59' AS DATETIME)   

ठीक काम करता है...

-- this is how your British user interprets teh string as datetime
SET LANGUAGE british
SELECT CAST('2012-11-30 23:59' AS DATETIME)

यह स्ट्रिंग को 2012 के 30वें महीने की 11वीं तारीख . के रूप में समझने की कोशिश करता है और जाहिर है, यह विफल हो जाता है....



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. दो तिथियों के बीच अनुपलब्ध दिनांक सीमाओं और अतिव्यापी दिनांक सीमाओं की गणना करें

  2. SQL सर्वर ट्रिगर:समझ और विकल्प

  3. इस क्वेरी के साथ पेजिंग (स्किप / टेक) कार्यक्षमता लागू करें

  4. एंटिटी फ्रेमवर्क:इस कमांड के साथ पहले से ही एक ओपन डेटा रीडर जुड़ा हुआ है

  5. त्रुटि:टीसीपी प्रदाता:त्रुटि कोड 0x2746। टर्मिनल के माध्यम से लिनक्स में एसक्यूएल सेटअप के दौरान