টাইমজুম ছাড়াই কীভাবে ইউনিক্স সময়কে পোস্টগ্রিসএসকিউএল 'টিমস্ট্যাম্পে রূপান্তর করবেন?


17

আমার একটি পোস্টগ্রিজ এসকিউএল ডাটাবেস চলছে যা একটি সার্ভারে চলছে যার সময় অঞ্চলটি ভারতের টাইম জোনে সেট করা থাকে (যেমন ইউটিসি +5: 30)

আমার কাছে টেবিলের কিছু তথ্য রয়েছে যা এইভাবে তৈরি করা হয়েছে:

CREATE TABLE "CLOUDDATA"
(
  "CD_Tm_Obs" timestamp without time zone,
  "CD_Avg_Cloud" double precision
)

আমি ডেটা জিজ্ঞাসা করতে এবং একটি নির্দিষ্ট সময়ের জন্য মান পেতে চাই। আমার ইনপুটটি ইউনিক্স টাইমস্ট্যাম্প হবে (যেমন 1-জানুয়ারি 1970 এর দ্বিতীয়)

টাইমস্ট্যাম্প আমি UNIX সময় পাওয়া যায় রূপান্তর একমাত্র উপায় হল এই: select to_timestamp(TRUNC(CAST(1395036000 AS bigint)))। তবে এটি টাইমজোন সহ একটি টাইমস্ট্যাম্প তৈরি করে। আমার ডেটা রয়েছে timestamp without time zoneতাই আমি কোনও ফল পাই না।

টাইমজুম ছাড়াই কীভাবে ইউনিক্স সময় পোস্টগ্র্রেএসকিউএল এর টিমস্ট্যাম্পে রূপান্তর করবেন?

উত্তর:


37

এখানে কয়েকটি পদ্ধতির উপায় রয়েছে:

আমি আপনার প্রশ্নের সরলীকৃত করেছি, যেমন আপনার যা দরকার করা উচিত নয় TRUNC(), কিংবা CAST()

SELECT to_timestamp(1395036000) AT TIME ZONE 'UTC';

SELECT timestamp '1970-01-01 00:00:00' + interval '1395036000 second';

রেফারেন্সের জন্য, আরও তথ্য নীচের লিঙ্কগুলিতে পাওয়া যাবে:


দ্বিতীয় স্নিপেট রেডশিফ্টেও কাজ করে।
জিয়ানলুকা কাসাটি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.