এখানে কোন পার্থক্য নেই. ম্যানুয়াল থেকে তিনটি উদ্ধৃতি:
1)
এই এসকিউএল-স্ট্যান্ডার্ডগুলি বর্তমান লেনদেনের শুরু সময়ের উপর ভিত্তি করে সমস্ত রিটার্ন মানগুলি কার্যকর করে:
...
...
CURRENT_TIMESTAMP
2)
transaction_timestamp()
এর সমতুল্য CURRENT_TIMESTAMP
, তবে এটি কী প্রত্যাবর্তন করে তা পরিষ্কারভাবে প্রতিফলিত করার জন্য নামকরণ করা হয়েছে।
3)
now()
এটি একটি চিরাচরিত PostgreSQL সমতুল্য transaction_timestamp()
।
বোল্ড জোর আমার। CURRENT_TIMESTAMP
, transaction_timestamp()
এবং now()
না ঠিক একই। CURRENT_TIMESTAMP
কোনও ফাংশনটির জন্য একটি সিনট্যাক্টিকাল বিজোড়তা, এতে প্রথম বন্ধনী নেই। এটি এসকিউএল স্ট্যান্ডার্ড অনুসারে।
যদি আপনি কোনও এসকিউএল স্টেটমেন্টে কোনও ফাংশন কলের জন্য একটি কলামের নাম ঘোষণা না করেন তবে উপন্যাসটি ফাংশনটির নামটিতে ডিফল্ট। অভ্যন্তরীণভাবে, স্ট্যান্ডার্ড-এসকিউএল CURRENT_TIMESTAMP
প্রয়োগ করা হয় now()
। পোস্টগ্রিস 9.6 অবধি যা ফলিত কলামের নামটি দেখায় যা "এখন" ছিল তবে পোস্টগ্রিস 10-এ "কারেন্ট_টাইমস্ট্যাম্প" এ পরিবর্তিত হয়েছে।
transaction_timestamp()
একই কাজ করে তবে এটি একটি যথাযথ পোস্টগ্রিস ফাংশন, তাই ডিফল্ট উপন্যাসটি সর্বদা "লেনদেনের_আদর্শনীয় স্ট্যাম্প" হয়ে থাকে।
বিশেষ ইনপুট ধ্রুবক দিয়ে এই ফাংশনগুলির কোনওটি বিভ্রান্ত করবেন না । ম্যানুয়ালটি উদ্ধৃত করে নির্দিষ্ট তারিখ / সময় / টাইমস্ট্যাম্প মানগুলির জন্য এটি বেশ কয়েকটি ননেশনাল শর্টহ্যান্ডগুলির মধ্যে একটি:'now'
... যা পড়লে সাধারণ তারিখ / সময়ের মানগুলিতে রূপান্তরিত হবে। (বিশেষত, now
এবং সম্পর্কিত স্ট্রিংগুলি পড়ার সাথে সাথে একটি নির্দিষ্ট সময়ের মানতে রূপান্তরিত হয়)) এসকিউএল কমান্ডের ধ্রুবক হিসাবে ব্যবহৃত হলে এই সমস্ত মানকে একক উদ্ধৃতিতে আবদ্ধ করা দরকার।
এটি বিভ্রান্তি যুক্ত করতে পারে যে (কমপক্ষে 12 পোস্টগ্রিজ অবধি) যে কোনও সংখ্যক নেতৃস্থানীয় এবং অনুসরণযোগ্য স্পেস এবং বন্ধনী ( {[( )]}
) এই বিশেষ ইনপুট মানগুলি থেকে ছাঁটা হয়েছে। সুতরাং 'now()'::timestamptz
- বা 'now()'
যেখানে কোনও স্পষ্টত ধরণের কাস্ট প্রয়োজন হয় না - এটি বৈধ এবং now()
বেশিরভাগ প্রসঙ্গে যেমন ফাংশন হিসাবে একই টাইমস্ট্যাম্পের মূল্যায়ন করতে ঘটে । তবে সেগুলি ধ্রুবক এবং সাধারণত কলামের ডিফল্ট হিসাবে আপনি যা চান না তা উদাহরণস্বরূপ।
ডিবি <> ফ্রিডল এখানে
পুরানো এসকিউএল ফিডল
উল্লেখযোগ্য বিকল্পগুলি হ'ল statement_timestamp()
এবং clock_timestamp()
। ম্যানুয়াল:
statement_timestamp()
বর্তমান বিবৃতিটির শুরুর সময়টি (আরও নির্দিষ্টভাবে, ক্লায়েন্টের কাছ থেকে সর্বশেষ কমান্ড বার্তা প্রাপ্তির সময়) প্রদান করে। [...]
clock_timestamp()
আসল বর্তমান সময়টি ফেরত দেয়, এবং সেইজন্য এর মান একটি একক এসকিউএল কমান্ডের মধ্যেও পরিবর্তিত হয়।
নোট: statement_timestamp()
হয় STABLE
উপরের হিসাবে (সবসময় একই SQL কমান্ড মধ্যে একই মান)। কিন্তু clock_timestamp()
অগত্যা শুধুমাত্র VOLATILE
। পার্থক্য উল্লেখযোগ্য হতে পারে।
where items.createddate > now()
?