किसी के कोड को उठाया है और यह एक खंड का एक हिस्सा है, जहां किसी को भी पता है कि डबल कोलन क्या इंगित करता है?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
किसी के कोड को उठाया है और यह एक खंड का एक हिस्सा है, जहां किसी को भी पता है कि डबल कोलन क्या इंगित करता है?
b.date_completed > a.dc::date + INTERVAL '1 DAY 7:20:00'
जवाबों:
यह RDBMS के आधार पर भिन्न होता है, लेकिन अगर मैं सही अनुमान लगाता हूं, तो यह PostgreSQL है, जिस स्थिति में दिनांक प्रकार में ::
कनवर्ट करता a.dc
है date
।
अन्य स्वादों में ...
MS SQL सर्वर 2000 में:
अंतर्निहित उपयोगकर्ता-परिभाषित फ़ंक्शंस के लिए जो एक तालिका लौटाते हैं, फ़ंक्शन नाम को एक अग्रणी डबल कोलोन के साथ निर्दिष्ट किया जाना चाहिए (: :) इसे उपयोगकर्ता-परिभाषित फ़ंक्शंस से अलग करने के लिए जो अंतर्निहित नहीं हैं। इसे एक डेटाबेस या मालिक की योग्यता के साथ एक-भाग के नाम के रूप में भी निर्दिष्ट किया जाना चाहिए। उदाहरण के लिए: SELECT * FROM :: fn_helpcollations () b .. अंतर्निहित उपयोगकर्ता-परिभाषित कार्यों के लिए जो एक स्केलर मान लौटाते हैं, फ़ंक्शन नाम को एक-भाग नाम (डेटाबेस या स्वामी निर्दिष्ट न करें) के रूप में निर्दिष्ट किया जाना चाहिए। एक अग्रणी डबल कोलन निर्दिष्ट न करें: (:)।
MS SQL सर्वर 2005 में:
यूडीएफ के लिए डबल-कॉलन्स की आवश्यकता नहीं है जो एक तालिका लौटाते हैं।
तथापि...
एसक्यूएल सर्वर 2005 में डबल-कॉलन की आवश्यकता होती है जब स्कीमा, प्रमाण पत्र, समापन बिंदु, और कुछ अन्य सेकुलर पर अनुमति प्रदान करते हैं।
साथ ही साथ...
उपयोगकर्ता-परिभाषित प्रकारों का उपयोग करते समय, प्रकार के स्थिर तरीकों को डबल-कोलोन सिंटैक्स का उपयोग करके बुलाया जाना चाहिए।
स्रोत: BOL और Kalen Delaney का ब्लॉग
इस मामले में, यह एक तिथि प्रकार का कलाकार है। :: एक प्रकार की कास्ट है जिसे CAST (अभिव्यक्ति AS प्रकार) के रूप में भी दर्शाया जा सकता है।
INTERVAL
समर्थन की सुविधा देते हैं । यह कोड का पहला टुकड़ा मैंने कभी देखा है जो दोनों को मिलाता है। मैं बिलकुल उत्सुक था। उत्तर के लिए धन्यवाद।
यह एक CAST
ऑपरेशन (एक तिथि प्रकार के लिए डाली) है।
उदाहरण:
SELECT now()::timestamp(0);
के बराबर है:
SELECT
CAST (now() AS timestamp(0));
वे दोनों निम्नलिखित प्रारूप में कास्टिंग now()
करते हैं timestamp
:YYYY-MM-DD HH:MM:SS
select 1.2::integer
जो परिणाम के रूप में परिणाम देगा 1
।
यह शायद एक कास्ट है, a.dc
टाइप करने के लिए परिवर्तित करना date
।
IBM Informix डायनेमिक सर्वर (IDS) इस तरह से काम करेगा - लेकिन अंत में INTERVAL संकेतन IDS के लिए मान्य नहीं है, इसलिए संभवतः यह एक और DBMS (शायद PostgreSQL ) है।