w3schools আমি কি MySQL এ ডেটাটাইম বা টাইমস্ট্যাম্প ডেটা টাইপ ব্যবহার করব?




mysql w3schools (24)

আমি একটি শব্দার্থিক বেস এই সিদ্ধান্ত না।

যখন আমি সময় (আরো বা কম) নির্দিষ্ট বিন্দু রেকর্ড করতে হবে তখন আমি টাইমস্ট্যাম্প ব্যবহার করি। উদাহরণস্বরূপ, ডেটাবেসে কোন রেকর্ড সন্নিবেশ করা হয়েছিল বা কিছু ব্যবহারকারীর পদক্ষেপ সংঘটিত হয়েছিল।

তারিখ / সময় সেট করা এবং ইচ্ছাকৃতভাবে পরিবর্তন করা যেতে পারে যখন আমি একটি ডেটাটাইম ক্ষেত্র ব্যবহার করুন। উদাহরণস্বরূপ, যখন একটি ব্যবহারকারী পরে পরিবর্তন অ্যাপয়েন্টমেন্ট সংরক্ষণ করতে পারেন।

আপনি একটি datetime বা datetime ক্ষেত্র ব্যবহার করে এবং কেন (MySQL ব্যবহার করে) সুপারিশ করবেন?

আমি সার্ভার পাশে পিএইচপি সঙ্গে কাজ করছি।



মাইএসকিউএল-এ টাইমস্ট্যাম্পগুলি সাধারণত রেকর্ডগুলিতে পরিবর্তনগুলি ট্র্যাক করতে ব্যবহৃত হয় এবং রেকর্ডটি পরিবর্তিত হওয়ার সময় প্রতিবার আপডেট করা হয়। আপনি একটি নির্দিষ্ট মান সংরক্ষণ করতে চান তাহলে আপনি একটি ডটটাইম ক্ষেত্র ব্যবহার করা উচিত।

আপনি যদি ইউনিক্স টাইমস্ট্যাম্প বা স্থানীয় মাইএসকিউএল ডেটটাইম ক্ষেত্র ব্যবহার করে সিদ্ধান্ত নিতে চান তবে স্থানীয় ফরম্যাটের সাথে যান। আপনি যেভাবে মাইএসকিউএল এর মধ্যে গণনা করতে পারেন ("SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)") এবং মানটির বিন্যাসটি UNIX টাইমস্ট্যাম্প ("SELECT UNIX_TIMESTAMP(my_datetime)") তে পরিবর্তন করা সহজ, যখন আপনি রেকর্ড অনুসন্ধান করেন আপনি পিএইচপি সঙ্গে এটি কাজ করতে চান।


TIMESTAMP DATETIME এর জন্য 4 বাইট বনাম 8 বাইট।

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

কিন্তু স্ক্রনডাইডের মত এটি 1970 এর নিচের সীমাবদ্ধতার কথা বলে। ভবিষ্যতে এমন কিছু করার পক্ষে এটি দুর্দান্ত। যদিও)


অ্যাপ্লিকেশন উপর নির্ভর করে, সত্যিই।

সাংহাইয়ের একটি অ্যাপয়েন্টমেন্টের জন্য নিউ ইয়র্কের একটি সার্ভারে ব্যবহারকারী দ্বারা টাইমস্ট্যাম্প সেট করার কথা বিবেচনা করুন। এখন যখন ব্যবহারকারী সানহাইয়ের সাথে সংযোগ স্থাপন করেন, তিনি টোকিওর একটি মিরর সার্ভার থেকে একই অ্যাপয়েন্টমেন্ট টাইমস্ট্যাম্প অ্যাক্সেস করেন। তিনি নিউইয়র্ক সময় থেকে অফসেট, টোকিও সময় এ অ্যাপয়েন্টমেন্ট দেখতে পাবেন।

তাই এমন মানগুলির জন্য যে ব্যবহারকারীর সময়কে অ্যাপয়েন্টমেন্ট বা সময়সূচী হিসাবে উপস্থাপিত করে, ডেটটাইম ভাল। এটি সার্ভার সেটিংস নির্বিশেষে, ব্যবহারকারী সঠিক তারিখ এবং সময় নিয়ন্ত্রণ করতে পারবেন। সেট সময় সেট সময়, সার্ভারের সময় অঞ্চল দ্বারা প্রভাবিত নয়, ব্যবহারকারীর সময় অঞ্চল, অথবা দিনের আলো সঞ্চয় সময় গণনা করা হয় পরিবর্তনের দ্বারা (হ্যাঁ এটি পরিবর্তিত হয়)।

অন্যদিকে, মূল্যের জন্য যে সময় সিস্টেমের সময় প্রদান করে যেমন পেমেন্ট লেনদেন, টেবিল পরিবর্তন বা লগিং, সবসময় টাইমস্ট্যাম্প ব্যবহার করে। সার্ভারটি অন্য সময় অঞ্চলের দিকে সরানো বা বিভিন্ন টাইমজোনগুলিতে সার্ভারগুলির মধ্যে তুলনা করে প্রভাবিত হবে না।

টাইমস্ট্যাম্প ডাটাবেসের উপর হালকা এবং দ্রুত সূচী হয়।


DATETIME, TIMESTAMP এবং DATE এর মধ্যে তুলনা

যে [। ক্র্যাকশন] কি?

  • একটি DATETIME বা TIMESTAMP মানটি মাইক্রোসেকেন্ড (6 ডিজিট) নির্ভুলতা পর্যন্ত একটি পূর্ববর্তী ভগ্নাংশ সেকেন্ডের অংশ অন্তর্ভুক্ত করতে পারে। বিশেষ করে, কোনও DATETIME বা TIMESTAMP কলামে ঢোকানো একটি ভেরিয়েবল অংশ বাতিল করার পরিবর্তে সংরক্ষণ করা হয়। এই অবশ্যই ঐচ্ছিক।

সূত্র:


মাইএসকিউএল এবং পিএইচপি দিয়ে কাজ করার সময় আমি সবসময় ইউনিক্স টাইমস্ট্যাম্প ব্যবহার করব। এটির মূল কারণ হচ্ছে পিএইচপি-এ ডিফল্ট date পদ্ধতিটি প্যারামিটার হিসাবে টাইমস্ট্যাম্প ব্যবহার করে, সুতরাং কোনও প্যারিসিং প্রয়োজন হবে না।

পিএইচপি বর্তমান ইউনিক্স টাইমস্ট্যাম্প পেতে, শুধু time();
এবং MySQL এ SELECT UNIX_TIMESTAMP();


নিচের উদাহরণগুলি দেখায় কিভাবে time-zone to 'america/new_york' পরিবর্তন করার পরে মানগুলি পরিবর্তিত করে যেখানে DATETIME অপরিবর্তিত থাকে।

mysql> show variables like '%time_zone%';
+------------------+---------------------+
| Variable_name    | Value               |
+------------------+---------------------+
| system_time_zone | India Standard Time |
| time_zone        | Asia/Calcutta       |
+------------------+---------------------+

mysql> create table datedemo(
    -> mydatetime datetime,
    -> mytimestamp timestamp
    -> );

mysql> insert into datedemo values ((now()),(now()));

mysql> select * from datedemo;
+---------------------+---------------------+
| mydatetime          | mytimestamp         |
+---------------------+---------------------+
| 2011-08-21 14:11:09 | 2011-08-21 14:11:09 |
+---------------------+---------------------+

mysql> set time_zone="america/new_york";

mysql> select * from datedemo;
+---------------------+---------------------+
| mydatetime          | mytimestamp         |
+---------------------+---------------------+
| 2011-08-21 14:11:09 | 2011-08-21 04:41:09 |
+---------------------+---------------------+

আমি নিবন্ধে আমার উত্তর রূপান্তরিত করেছি যাতে আরো মানুষ এই দরকারীটি খুঁজে পেতে পারে, মাইএসকিউএল: ডেটাটাইম ভার্সন টাইমস্ট্যাম্প ডেটা প্রকার


2016 + : আমি যা বলি তা হল আপনার মাইস্কল টাইমজোনকে ইউটিসিতে সেট করা এবং DATETIME ব্যবহার করুন:

সাম্প্রতিক কোনও সামনের ফ্রেমওয়ার্ক (কৌণিক 1/2, প্রতিক্রিয়া, ভু, ...) সহজেই এবং স্বয়ংক্রিয়ভাবে আপনার ইউটিসি ডেটটাইম স্থানীয় সময় রূপান্তর করতে পারে।

উপরন্তু:

(যদি না আপনি আপনার সার্ভারের টাইমজোন পরিবর্তন করতে পারেন)

AngularJs সঙ্গে উদাহরণ

// back-end: format for angular within the sql query
SELECT DATE_FORMAT(my_datetime, "%Y-%m-%dT%TZ")...

// font-end Output the localised time
{{item.my_datetime | date :'medium' }}

এখানে উপলব্ধ সমস্ত স্থানীয় সময় বিন্যাস: https://docs.angularjs.org/api/ng/filter/date


মাইএসকিউএলটিতে উল্লেখিত মূল্যটি আপনার টেবিল কলামগুলি তৈরি করার সময় নিচের লাইন বরাবর কিছু ব্যবহার করতে পারে:

on update CURRENT_TIMESTAMP

এটি প্রতিটি সারিতে আপনি একটি সারি সংশোধন করতে সময় আপডেট করবে এবং কখনও কখনও শেষ সম্পাদনা তথ্য সংরক্ষণের জন্য খুব সহায়ক হবে। এই শুধুমাত্র টাইমস্ট্যাম্প সঙ্গে কাজ করে, না datetime তবে।


আমি সবসময় ইউনিট টাইমস্ট্যাম্প ব্যবহার করি, ডেটটাইম তথ্যের সাথে ডিল করার সময় স্যানিটি বজায় রাখার জন্য, বিশেষত টাইমজোনগুলির জন্য সমন্বয় সম্পাদন, তারিখগুলি যোগ / কমানোর তারিখ এবং অনুরূপ। টাইমস্ট্যাম্পগুলি তুলনা করার সময়, এটি টাইমজোন এর জটিল বিষয়গুলিকে বাদ দেয় এবং আপনার সার্ভার পার্শ্ব প্রক্রিয়াকরণে (এটি কোনও অ্যাপ্লিকেশন কোড বা ডেটাবেস ক্যোয়ারী হয় কিনা) সংস্থানগুলি সরবরাহ করার মঞ্জুরি দেয় তবে আপনি আলোর ওজন গাণিতিক ব্যবহার করে বরং ভারী তারিখ-সময় যুক্ত / বিয়োগ করুন ফাংশন।

বিবেচনার যোগ্য আরেকটি জিনিস:

আপনি যদি কোনও অ্যাপ্লিকেশন তৈরি করেন তবে লাইনের নিচে আপনার ডেটা কীভাবে ব্যবহার করতে হবে তা আপনি কখনই জানেন না। আপনি যদি বলে থাকেন, আপনার ডেটা সেটের রেকর্ডগুলির একটি গুচ্ছ তুলনা করুন, বলুন, তৃতীয় পক্ষের API থেকে আইটেমগুলির একটি গোষ্ঠী তুলুন এবং বলুন, তাদের ক্রোনিকাল অর্ডারে রাখুন, আপনি খুশি হবেন আপনার সারির জন্য ইউনিক্স টাইমস্ট্যাম্প। এমনকি যদি আপনি MySQL টাইমস্ট্যাম্পগুলি ব্যবহার করার সিদ্ধান্ত নিচ্ছেন তবে বীমা হিসাবে ইউনিক্স টাইমস্ট্যাম্পটি সংরক্ষণ করুন।


মাইএসকিউএল 5 এবং তারপরে , টাইমস্ট্যাম্প মানগুলি বর্তমান সময় অঞ্চল থেকে স্টোরেজের জন্য ইউটিসি তে রূপান্তরিত হয় এবং পুনরুদ্ধারের জন্য বর্তমান সময়ের অঞ্চল থেকে UTC থেকে রূপান্তরিত হয়। (এটি শুধুমাত্র TIMESTAMP ডেটা টাইপের জন্য ঘটে এবং DATETIME এর মতো অন্যান্য প্রকারের জন্য নয় ।)

ডিফল্টরূপে, প্রতিটি সংযোগের জন্য বর্তমান সময় অঞ্চল সার্ভারের সময়। MySQL সার্ভার টাইম জোন সাপোর্টে বর্ণনা অনুযায়ী টাইম জোন প্রতি-সংযোগ ভিত্তিতে সেট করা যেতে পারে।


আমি একটি ইউনিক্স টাইমস্ট্যাম্প পছন্দ করি, কারণ আপনি সংখ্যার রূপান্তর করতে পারেন এবং কেবল নম্বরটি সম্পর্কে চিন্তা করতে পারেন। প্লাস আপনি যোগ / বিয়োগ এবং durations ইত্যাদি, ইত্যাদি। তারপর ফলাফল রূপান্তর তারিখ যাই হোক না কেন রূপান্তর। এই কোডটি একটি নথির সময় এবং বর্তমান সময় থেকে টাইমস্ট্যাম্পের মধ্যে কত মিনিট সময় পাস করে তা খুঁজে বের করে।

$date  = $item['pubdate']; (etc ...)
$unix_now = time();
$result = strtotime($date, $unix_now);
$unix_diff_min = (($unix_now  - $result) / 60);
$min = round($unix_diff_min);

আমি একটি DATETIME বা একটি টাইমস্টাম ক্ষেত্র ব্যবহার করে সুপারিশ। আপনি যদি কোনও নির্দিষ্ট দিনটি সম্পূর্ণরূপে (জন্মদিনের মতো) প্রতিনিধিত্ব করতে চান তবে DATE এর একটি টাইপ ব্যবহার করুন, তবে যদি আপনি তার চেয়ে বেশি নির্দিষ্ট হন তবে সম্ভবত আপনি একটি ইউনিটের বিপরীতে একটি প্রকৃত মুহূর্ত রেকর্ড করতে আগ্রহী সময় (দিন, সপ্তাহ, মাস, বছর)। DATETIME বা TIMESTAMP ব্যবহার করার পরিবর্তে, একটি বিআইজিআইটিটি ব্যবহার করুন, এবং যুগ (System.currentTimeMillis () যদি আপনি জাভা ব্যবহার করছেন তবে মিলিসেকেন্ডের সংখ্যা সংরক্ষণ করুন। এই অনেক সুবিধা আছে:

  1. আপনি বিক্রেতা লক ইন এড়াতে। অনেক অনেক ডাটাবেস অপেক্ষাকৃত অনুরূপ ফ্যাশন পূর্ণসংখ্যা সমর্থন করে। ধরুন আপনি অন্য ডাটাবেসে যেতে চান। আপনি কি MySQL এর DATETIME মানগুলির মধ্যে পার্থক্য এবং ওরাকল তাদের কীভাবে সংজ্ঞায়িত করে সে সম্পর্কে চিন্তা করতে চান? এমনকি মাইএসকিউএল এর বিভিন্ন সংস্করণগুলির মধ্যে, টাইমস্ট্যাম্পগুলিতে স্পষ্টতা একটি ভিন্ন স্তর আছে। এটি শুধুমাত্র সম্প্রতি যে MySQL টাইমস্ট্যাম্পগুলিতে মিলিসেকেন্ড সমর্থিত।
  2. কোন টাইমজোন সমস্যা। বিভিন্ন ডাটা প্রকারের সাথে টাইমজোনগুলির সাথে কী ঘটছে তা এখানে কিছু অন্তর্দৃষ্টিপূর্ণ মন্তব্য করা হয়েছে। কিন্তু এই সাধারণ জ্ঞান, এবং আপনার সহকর্মী সবাই এটা শিখতে সময় লাগবে? অন্যদিকে, একটি বিউইআইএনআইটিটি পরিবর্তন করার জন্য জাভা.উটিল.ডেলে পরিবর্তন করা খুব কঠিন। ডেট। একটি বিজিআইটিটি ব্যবহার করে টাইমজোনগুলি বিভিন্ন উপায়ে পড়ে যায়।
  3. রেঞ্জ বা স্পষ্টতা সম্পর্কে কোন উদ্বেগ। ভবিষ্যতের তারিখের রেঞ্জের দ্বারা কী কাটা হচ্ছে তা সম্পর্কে আপনার কোনও চিন্তা করতে হবে না (TIMESTAMP শুধুমাত্র 2038 হয়)।
  4. তৃতীয় পক্ষের টুল ইন্টিগ্রেশন। একটি পূর্ণসংখ্যা ব্যবহার করে, তৃতীয় পক্ষের সরঞ্জামগুলির জন্য এটি তুচ্ছ (যেমন EclipseLink) ডাটাবেসের সাথে ইন্টারফেস করতে। মাইএসকিউএল হিসাবে প্রতিটি তৃতীয়-পক্ষের সরঞ্জামটি "ডেটটাইম" এর একই বোঝার মতো হবে না। আপনি যদি এই কাস্টম ডেটা প্রকারগুলি ব্যবহার করছেন তবে java.sql.TimeStamp বা java.util.Date অবজেক্টটি ব্যবহার করতে হবে কিনা সেটি হাইবারনেটে চেষ্টা করে দেখতে চেষ্টা করুন। আপনার বেস ডেটা প্রকারগুলি ব্যবহার করে থার্ড-পার্টি সরঞ্জাম তুচ্ছ ব্যবহার করে।

এই সমস্যাটি আপনি কিভাবে একটি ডেটাবেসে অর্থের মান (অর্থাত্ $ 1.99) সঞ্চয় করতে হবে তা ঘনিষ্ঠভাবে সম্পর্কিত। আপনি একটি দশমিক, বা ডাটাবেস এর মানি টাইপ ব্যবহার করা উচিত, বা সব ডবল একটি খারাপ? এই সমস্ত 3 টি বিকল্প ভয়ানক, উপরে তালিকাভুক্ত একই কারণগুলির জন্য। সমাধানটি BIGINT ব্যবহার করে সেন্টের মানটি সঞ্চয় করা এবং তারপর ব্যবহারকারীকে মান প্রদর্শন করার পরে সেন্টে ডলার রূপান্তর করা হয়। ডাটাবেস এর কাজ তথ্য সংরক্ষণ করা হয়, এবং যে তথ্য intrepret না। ডেটাবেসে (বিশেষত ওরেকল) আপনি যা দেখেন তা এই সমস্ত অভিনব ডেটা-প্রকারগুলি সামান্য যোগ করে এবং লক-ইন বিক্রেতাকে রাস্তাটি নিচে নামিয়ে দেয়।


বিভিন্ন সময় অঞ্চলগুলির সাথে বিভিন্ন দেশ থেকে আসা দর্শকদের সময় TIMESTAMP দরকারী। আপনি সহজেই টাইমস্ট্যাম্পটি যে কোনও দেশের সময় অঞ্চলে রূপান্তর করতে পারেন


আপনি টেবিলে একটি আপডেট বিবৃতি করবেন যখন টাইমস্ট্যাম্প পরিবর্তন থেকে সাবধান। যদি আপনার কলাম 'নাম' (ভার্চার), 'বয়স' (int) এবং 'Date_Added' (টাইমস্ট্যাম্প) সহ একটি টেবিল থাকে এবং আপনি নিম্নলিখিত DML বিবৃতিটি চালান

UPDATE table
SET age = 30

তারপরে আপনার 'তারিখ_ যোগ করা' কলামের প্রতিটি একক মান বর্তমান টাইমস্ট্যাম্পে পরিবর্তিত হবে।


timestamp ক্ষেত্রটি datetime ক্ষেত্রের একটি বিশেষ ক্ষেত্রে। আপনি বিশেষ বৈশিষ্ট্য আছে timestamp কলাম তৈরি করতে পারেন; এটি তৈরি এবং / অথবা আপডেটে নিজেই আপডেট করতে সেট করা যেতে পারে।

"বৃহত্তর" ডাটাবেস পদগুলিতে, timestamp এটি বিশেষ-কেস ট্রিগারগুলির একটি দম্পতি রয়েছে।

সঠিকটি আপনি যা করতে চান তার উপর সম্পূর্ণ নির্ভর করে।


আমি সবসময় সারি মেটাডেটা (তারিখ তৈরি বা সংশোধিত) ছাড়া অন্য কিছু জন্য DATETIME ক্ষেত্র ব্যবহার করি।

মাইএসকিউএল ডকুমেন্টেশন dev.mysql.com/doc/refman/5.1/en/datetime.html হিসাবে:

DATETIME টাইপটি যখন আপনার মূল্য এবং সময় তথ্য উভয় ধারণার প্রয়োজন হয় তখন ব্যবহার করা হয়। MySQL 'YYYY-MM-DD HH: MM: SS' ফর্ম্যাটে DATETIME মান উদ্ধার করে এবং প্রদর্শন করে। সমর্থিত পরিসীমা '1000-01-01 00:00:00' থেকে '9999-12-31 23:59:59'।

...

TIMESTAMP ডাটা টাইপের একটি পরিসীমা রয়েছে '1970-01-01 00:00:01' UTC থেকে '2038-01-09 03:14:07' UTC। এটি MySQL সংস্করণ এবং সার্ভারে চলমান SQL মোডের উপর নির্ভর করে পরিবর্তিত বৈশিষ্ট্য রয়েছে।

আপনি সাধারণত সাধারণ ব্যবহারের সময় TIMESTAMPs এর নিম্ন সীমাটি হ্রাস করতে পারেন - যেমন জন্ম তারিখ সঞ্চয় করা।


এই নিবন্ধ থেকে নেওয়া রেফারেন্স:

প্রধান পার্থক্য:

TIMESTAMP রেকর্ডগুলিতে পরিবর্তনগুলি ট্র্যাক করতে ব্যবহৃত হয়েছিল এবং রেকর্ড পরিবর্তিত হলে প্রতিবার আপডেট হয়। DATETIME নির্দিষ্ট এবং স্ট্যাটিক মান সংরক্ষণ করতে ব্যবহৃত যা রেকর্ডগুলির কোনও পরিবর্তন দ্বারা প্রভাবিত হয় না।

TIMESTAMP এছাড়াও বিভিন্ন টাইম জোনের সম্পর্কিত সেটিং দ্বারা প্রভাবিত। DATETIME ধ্রুবক।

TIMESTAMP অভ্যন্তরীণভাবে স্টোরেজের জন্য বর্তমান সময় অঞ্চলকে UTC এ রূপান্তরিত করে এবং পুনরুদ্ধারের সময় বর্তমান সময় অঞ্চলটিতে রূপান্তরিত হয়। DATETIME এটি করতে পারে না।

TIMESTAMP সমর্থিত পরিসীমা: '1970-01-01 00:00:01' UTC থেকে '2038-01-19 03:14:07' UTC DATETIME সমর্থিত পরিসীমা: '1000-01-01 00:00:00' থেকে '9999 -12-31 23:59:59 '


আমার ক্ষেত্রে, আমি সবকিছু জন্য ইউটিসি একটি সময় অঞ্চল হিসাবে সেট: সিস্টেম, ডাটাবেস সার্ভার, ইত্যাদি আমি যা করতে পারি প্রত্যেক সময়। আমার গ্রাহক অন্য সময় অঞ্চল প্রয়োজন হলে, আমি অ্যাপ্লিকেশন এ এটি কনফিগার।

আমি প্রায় সবসময় টাইমস্ট্যাম্প পছন্দ করি টাইমস্ট্যাম্পের চেয়ে টাইমস্ট্যাম্প, কারণ টাইমস্ট্যাম্পগুলি টাইমজোনকে অন্তর্নিহিতভাবে অন্তর্ভুক্ত করে। সুতরাং, যেহেতু অ্যাপ্লিকেশনটি বিভিন্ন সময় অঞ্চল থেকে ব্যবহারকারীদের অ্যাক্সেস করা হবে এবং আপনি তাদের স্থানীয় টাইমজোনগুলিতে তারিখ এবং সময় দেখতে চান, তাই এই ক্ষেত্রের ধরনটি ডেটাটাইম ক্ষেত্রগুলিতে ডেটা সংরক্ষণ করা হয়েছে তার চেয়ে এটি করা অনেক সহজ করে তোলে। ।

প্লাস হিসাবে, অন্য টাইমজোন সহ সিস্টেমে ডাটাবেসের মাইগ্রেশন ক্ষেত্রে, টাইমস্ট্যাম্প ব্যবহার করে আমি আরো আত্মবিশ্বাসী বোধ করব। Sumer সময় সঙ্গে দুই মুহূর্তের মধ্যে পার্থক্য গণনা যখন সম্ভব সমস্যা বলতে না এবং 1 ঘন্টা বা তার কম একটি নির্ভুলতা প্রয়োজন।

সুতরাং, সংক্ষিপ্তভাবে, আমি টাইমস্ট্যাম্পের এই সুবিধাগুলি মানি:

  • আন্তর্জাতিক (মাল্টি টাইম জোন) অ্যাপ্লিকেশন ব্যবহার করতে প্রস্তুত
  • সময় অঞ্চল মধ্যে সহজ মাইগ্রেশন
  • diferences গণনা করা খুব সহজ (উভয় টাইমস্ট্যাম্প ঠিক করুন)
  • গ্রীষ্মকালীন সময়কালের মধ্যে তারিখগুলি সম্পর্কে কোন উদ্বেগ নেই

এই সব কারণে, আমি UTC এবং টাইমস্ট্যাম্প ক্ষেত্র যেখানে পজিবল চয়ন। এবং আমি মাথা ব্যাথা এড়াতে;)


আমি কেবল BIGINTইউটিসি সংরক্ষণ করার সময় স্বাক্ষরিত ব্যবহার ...

তারপর যা এখনও পিএইচপি স্থানীয় সময় সমন্বয় করা যাবে।

DATETIMEসঙ্গে নির্বাচিত করা FROM_UNIXTIME( integer_timestamp_column )

এক স্পষ্টভাবে যে কলাম একটি সূচক সেট করা উচিত, অন্য কোন অগ্রিম হবে।


আমি টাইমস্ট্যাম্প ব্যবহার করে পছন্দ করি যাতে সবকিছু এক সাধারণ কাঁচা ফরম্যাটে রাখা যায় এবং পিএইচপি কোডে বা আপনার এসকিউএল ক্যোয়ারীতে ডাটা ফরম্যাট করে। এটি আপনার প্লেইনতে সহজে সবকিছু রাখতে প্লেইন সেকেন্ডে রয়েছে।


  1. TIMESTAMP DATETIME এর জন্য আট বাইট বনাম চার বাইট।

  2. টাইমস্ট্যাম্প ডাটাবেসের উপর হালকা এবং দ্রুত সূচী হয়।

  3. DATETIME টাইপটি যখন আপনার মূল্য এবং সময় তথ্য উভয় ধারণার প্রয়োজন হয় তখন ব্যবহার করা হয়। MySQL 'YYYY-MM-DD HH: MM: SS' ফর্ম্যাটে DATETIME মান উদ্ধার করে এবং প্রদর্শন করে। সমর্থিত পরিসীমা '1000-01-01 00:00:00' থেকে '9999-12-31 23:59:59'।

TIMESTAMP ডাটা টাইপের একটি পরিসীমা রয়েছে '1970-01-01 00:00:01' UTC থেকে '2038-01-09 03:14:07' UTC। এটি MySQL সংস্করণ এবং সার্ভারে চলমান SQL মোডের উপর নির্ভর করে পরিবর্তিত বৈশিষ্ট্য রয়েছে।

  1. TIMEATAMP সময়সীমা সেটিং দ্বারা প্রভাবিত হয় যখন DATETIME ধ্রুবক।

TIMESTAMP সর্বদা ইউটিসি (যা, 1970-01-01 থেকে ইউটিসি-তে, সেকেন্ডের মধ্যে চলে গেছে), এবং সার্ভারের টাইমজোনটির জন্য আপনার MySQL সার্ভার স্বয়ংক্রিয়ভাবে তারিখ / সময় রূপান্তর করে। দীর্ঘমেয়াদী, TIMESTAMP যাওয়ার উপায় কারণ আপনি জানেন যে আপনার সাময়িক তথ্য সর্বদা UTC এ থাকবে। উদাহরণস্বরূপ, আপনি যদি আপনার সার্ভারে টাইমজোন সেটিংস পরিবর্তন করেন তবে আপনি আপনার সার্ভারগুলি অন্য সার্ভারে স্থানান্তরিত করলে বা আপনার তারিখগুলি স্ক্রু করবেন না।







sqldatatypes