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

SQL सर्वर में MySQL TIMESTAMP कॉलम के साथ कार्य करना

कभी-कभी आपको दो अलग-अलग डीबीएमएस कार्यक्रमों को एकीकृत करते समय थोड़ा अतिरिक्त काम करने की आवश्यकता होती है। यहां एक समाधान दिया गया है जिसका उपयोग हम उस ग्राहक की मदद करने के लिए करते हैं जिसे SQL सर्वर को MySQL के साथ एकीकृत करने का प्रयास करते समय समस्या हो रही थी।

MySQL TIMESTAMP कॉलम के साथ काम करते समय ग्राहक को SQL सर्वर में निम्न त्रुटि मिल रही थी।

select * from openquery(MYSQL, 'select lastupdated from carriers')
Error converting data type DBTYPE_DBTIMESTAMP to datetime2.

इसका मूल कारण यह था कि ग्राहक के MySQL डेटाबेस में अमान्य DATE, DATETIME, या TIMESTAMP मानों को स्वचालित रूप से शून्य में परिवर्तित किया जा रहा था (यानी '0000-00-00' या '0000-00-00 00:00:00') . SQL सर्वर में एक शून्य महीना या दिन मान्य दिनांक या समय संयोजन नहीं है। इसे हल करने के लिए, हमने सबसे पहले MySQL से वापस आने वाले कॉलम को char(20) में बदल दिया:

select * from openquery(MYSQL, 'select cast(lastupdated as char(20) ) as
lastupdated from carriers')

कॉलम का मान '0000-00-00000:00:00' फिर NULL में बदल दिया गया:

select case lastupdated when '0000-00-00 00:00:00' then null else lastupdated
end as lastupdated from openquery(MYSQL, 'select cast(lastupdated as char(20) )
as lastupdated from carriers')

अंत में, "lastupdated" कॉलम को datetime2 पर वापस लाने के लिए, हम दौड़े:

select cast(x.lastupdated as datetime2) as lastupdated from ( select case
lastupdated when '0000-00-00 00:00:00' then null else lastupdated end as
lastupdated from openquery(MYSQL, 'select cast(lastupdated as char(20) ) as
lastupdated from carriers limit 100') ) x

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Linux सर्वर पर एकाधिक MySQL इंस्टेंस स्थापित करें - एक अलग MySQL कॉन्फ़िगरेशन फ़ाइल का उपयोग करें

  2. MySQL में एक संयोजित स्ट्रिंग में एक सेपरेटर कैसे जोड़ें - CONCAT_WS ()

  3. PostgreSQL बनाम MySQL:कौन सा सर्वश्रेष्ठ है?

  4. आप MySQL डेटाटाइम कॉलम के लिए डिफ़ॉल्ट मान कैसे सेट करते हैं?

  5. क्या MySQL का उपयोग करके एकाधिक कॉलम द्वारा ग्रुप करना संभव है?