আমি এই স্ট্যাকওভারফ্লো প্রশ্নের উত্তর দিচ্ছিলাম এবং আজব ফলাফল পেয়েছি:
select * from pg_timezone_names where name = 'Europe/Berlin' ;
name | abbrev | utc_offset | is_dst
---------------+--------+------------+--------
Europe/Berlin | CET | 01:00:00 | f
এবং পরবর্তী জিজ্ঞাসা
select id,
timestampwithtimezone,
timestampwithtimezone at time zone 'Europe/Berlin' as berlin,
timestampwithtimezone at time zone 'CET' as cet
from data ;
id | timestampwithtimezone | berlin | cet
-----+------------------------+---------------------+---------------------
205 | 2012-10-28 01:30:00+02 | 2012-10-28 01:30:00 | 2012-10-28 00:30:00
204 | 2012-10-28 02:00:00+02 | 2012-10-28 02:00:00 | 2012-10-28 01:00:00
203 | 2012-10-28 02:30:00+02 | 2012-10-28 02:30:00 | 2012-10-28 01:30:00
202 | 2012-10-28 02:59:59+02 | 2012-10-28 02:59:59 | 2012-10-28 01:59:59
106 | 2012-10-28 02:00:00+01 | 2012-10-28 02:00:00 | 2012-10-28 02:00:00
আমি PostgreSQL 9.1.2 এবং উবুন্টু 12.04 ব্যবহার করছি।
সবেমাত্র পরীক্ষিত হয়েছে 8.2.11 ফলাফল একই।
ডকুমেন্টেশন অনুসারে আমি নাম বা সংক্ষিপ্ত ব্যবহার করি তা বিবেচনা করে না।
এটি কি বাগ?
আমি কি ভুল কিছু করছি?
কেউ কি এই ফলাফল ব্যাখ্যা করতে পারেন?
সম্পাদনা করুন মন্তব্যের জন্য যে সিইটি ইউরোপ / বার্লিন নয়।
আমি কেবল পিজি_টাইমজোন_নাম থেকে মানগুলি নির্বাচন করছি।
select * from pg_timezone_names where abbrev ='CEST';
name | abbrev | utc_offset | is_dst
------+--------+------------+--------
এবং
select * from pg_timezone_names where abbrev ='CET';
name | abbrev | utc_offset | is_dst
---------------------+--------+------------+--------
Africa/Tunis | CET | 01:00:00 | f
Africa/Algiers | CET | 01:00:00 | f
Africa/Ceuta | CET | 01:00:00 | f
CET | CET | 01:00:00 | f
Atlantic/Jan_Mayen | CET | 01:00:00 | f
Arctic/Longyearbyen | CET | 01:00:00 | f
Poland | CET | 01:00:00 | f
.....
শীতের সময় ইউরোপ / বার্লিন +01 হয়। গ্রীষ্মের সময় এটি +02 হয়।
EDIT2
2012-10-28 এ টাইমজোন গ্রীষ্মের সময় থেকে শীতের সময় 2:00 এ পরিবর্তিত হয়েছে।
এই দুটি রেকর্ডের ইউরোপ / বার্লিনে একই মান রয়েছে:
204 | 2012-10-28 02:00:00+02 | 2012-10-28 02:00:00 | 2012-10-28 01:00:00
106 | 2012-10-28 02:00:00+01 | 2012-10-28 02:00:00 | 2012-10-28 02:00:00
এটি সুপারিশ করে যে আমি যদি বড় ডেটা রেঞ্জের জন্য গ্রীষ্মের সময় এবং শীতের সময়) এর কয়েকটি সংক্ষেপ (সিইটি বা সিইএসটি) ব্যবহার করি তবে কিছু রেকর্ডের জন্য ভুল হবে। আমি যদি 'ইউরোপ / বার্লিন' ব্যবহার করি তবে ভাল হবে।
আমি সিস্টেমের সময়টিকে '2012-01-17' এ পরিবর্তন করেছি এবং পিজি_টাইমজোন_নামগুলিও পরিবর্তিত হয়েছে।
select * from pg_timezone_names where name ='Europe/Berlin';
name | abbrev | utc_offset | is_dst
---------------+--------+------------+--------
Europe/Berlin | CEST | 02:00:00 | t
CET
হয় না Europe/Berlin
- অন্তত ডিএসটি সময়ের নয়।
2012-10-28 01:30:00
সিইএসটি, সিইটি নয়।