PHP विकास के लिए MySQL में DATETIME और TIMESTAMP के बीच चयन करना

PHP

MySQL में दिनांक और समय डेटा प्रकारों को समझना

MySQL के साथ काम करते समय, दिनांक और समय मानों को संग्रहीत करने के लिए उपयुक्त डेटा प्रकार का चयन करना आपके डेटाबेस के प्रदर्शन और कार्यक्षमता पर महत्वपूर्ण प्रभाव डाल सकता है। यह आलेख DATETIME और TIMESTAMP डेटा प्रकारों के बीच अंतर का पता लगाता है और PHP सर्वर-साइड वातावरण में उनके उपयोग के लिए अनुशंसाएँ प्रदान करता है।

इन अंतरों को समझने से आपको अपने डेटाबेस स्कीमा डिज़ाइन के लिए सूचित निर्णय लेने में मदद मिलेगी। हम दोनों डेटा प्रकारों की विशेषताओं की जांच करेंगे, उनके फायदे और सीमाओं पर चर्चा करेंगे, और आपकी विशिष्ट आवश्यकताओं और उपयोग के मामलों के आधार पर सही डेटा चुनने के लिए व्यावहारिक सलाह देंगे।

आज्ञा विवरण
CREATE TABLE निर्दिष्ट कॉलम और बाधाओं के साथ डेटाबेस में एक नई तालिका बनाता है।
DATETIME समय क्षेत्र के बिना दिनांक और समय मान संग्रहीत करता है। ऐतिहासिक डेटा के लिए उपयुक्त.
TIMESTAMP दिनांक और समय मानों को संग्रहीत करता है, उन्हें भंडारण के लिए यूटीसी में परिवर्तित करता है और पुनर्प्राप्ति के लिए स्थानीय समय में वापस लाता है।
AUTO_INCREMENT जब भी कोई नया रिकॉर्ड तालिका में डाला जाता है तो स्वचालित रूप से एक अद्वितीय संख्या उत्पन्न होती है।
DEFAULT CURRENT_TIMESTAMP नया रिकॉर्ड बनाए जाने पर TIMESTAMP फ़ील्ड का डिफ़ॉल्ट मान वर्तमान दिनांक और समय पर सेट करता है।
$conn->query($sql) डेटाबेस के विरुद्ध एक क्वेरी निष्पादित करता है। डेटा प्रविष्टि और पुनर्प्राप्ति दोनों के लिए उपयोग किया जाता है।
$conn->fetch_assoc() एक परिणाम पंक्ति को एक सहयोगी सरणी के रूप में लाता है, जहां कॉलम नाम कुंजी हैं।

MySQL दिनांक और समय फ़ील्ड लागू करना

प्रदान की गई स्क्रिप्ट प्रभावी ढंग से उपयोग करने का तरीका दर्शाती हैं और सर्वर साइड पर PHP के साथ काम करते समय MySQL में डेटा प्रकार। पहली स्क्रिप्ट एक MySQL तालिका बनाती है जिसे कहा जाता है , जिसमें दो दिनांक और समय फ़ील्ड शामिल हैं: event_date और . प्रकार का प्रयोग किया जाता है समय क्षेत्र पर विचार किए बिना किसी घटना की विशिष्ट तिथि और समय को संग्रहीत करना, इसे ऐतिहासिक डेटा के लिए उपयुक्त बनाना। TIMESTAMP प्रकार के लिए प्रयोग किया जाता है प्रत्येक रिकॉर्ड बनाए जाने पर स्वचालित रूप से ट्रैक करने के लिए, भंडारण पर समय को यूटीसी में परिवर्तित करना और पुनर्प्राप्ति पर स्थानीय समय में वापस परिवर्तित करना। यह अंतर उन अनुप्रयोगों के लिए महत्वपूर्ण है जिन्हें समय क्षेत्र को ध्यान में रखने की आवश्यकता है। दूसरी स्क्रिप्ट बताती है कि इसमें डेटा कैसे डाला जाए PHP का उपयोग कर तालिका। यह MySQL डेटाबेस से जुड़ता है, एक तैयार करता है कथन, और एक नया ईवेंट रिकॉर्ड जोड़ने के लिए इसे निष्पादित करता है। का उपयोग करके डेटाबेस से कनेक्शन स्थापित किया जाता है new mysqli() फ़ंक्शन, और क्वेरी को इसके साथ निष्पादित किया जाता है तरीका। यदि कनेक्शन विफल हो जाता है या क्वेरी में कोई समस्या आती है तो स्क्रिप्ट में प्रतिक्रिया देने के लिए त्रुटि प्रबंधन भी शामिल है। यह PHP स्क्रिप्ट सुनिश्चित करती है कि दिनांक और समय डेटा सही ढंग से स्वरूपित किया गया है और डेटाबेस में डाला गया है।

तीसरी स्क्रिप्ट डेटा को पुनर्प्राप्त और प्रदर्शित करती है मेज़। यह फिर से डेटाबेस से जुड़ता है, चलता है सभी रिकॉर्ड लाने के लिए क्वेरी, और परिणामों को संसाधित करता है। फ़ंक्शन का उपयोग प्रत्येक पंक्ति को एक सहयोगी सरणी के रूप में लाने के लिए किया जाता है, जिससे उनके नाम से कॉलम मानों तक आसान पहुंच मिलती है। फिर स्क्रिप्ट परिणाम सेट के माध्यम से लूप करती है, आउटपुट देती है id, , , और प्रत्येक रिकॉर्ड के लिए फ़ील्ड. यह दर्शाता है कि दोनों में संग्रहीत डेटा को कैसे संभालना और प्रदर्शित करना है DATETIME और प्रारूप, यह सुनिश्चित करते हुए कि एप्लिकेशन समय-संबंधित जानकारी की सही व्याख्या और प्रस्तुत करता है।

MySQL में DATETIME और TIMESTAMP का उपयोग करना

PHP और MySQL: डेटाबेस स्कीमा डिज़ाइन

// Backend: Creating a MySQL Table with DATETIME and TIMESTAMP fields
CREATE TABLE events (
    id INT AUTO_INCREMENT PRIMARY KEY,
    event_name VARCHAR(100) NOT ,
    event_date DATETIME NOT ,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
// Explanation:
// 'event_date' uses DATETIME to store the date and time of the event.
// 'created_at' uses TIMESTAMP to automatically track the record creation time.

MySQL तालिका में डेटा सम्मिलित करना

PHP और MySQL: डेटा इंसर्शन स्क्रिप्ट

//php
// Backend: PHP Script to Insert Data into the MySQL Table
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$event_name = "Sample Event";
$event_date = "2024-07-10 12:00:00";
$sql = "INSERT INTO events (event_name, event_date)
VALUES ('$event_name', '$event_date')";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
//

डेटा पुनर्प्राप्त करना और प्रदर्शित करना

PHP और MySQL: डेटा लाना और प्रदर्शित करना

//php
// Backend: PHP Script to Retrieve and Display Data from MySQL Table
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, event_name, event_date, created_at FROM events";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["event_name"].
             " - Event Date: " . $row["event_date"].
             " - Created At: " . $row["created_at"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
//

MySQL में DATETIME और TIMESTAMP के बीच चयन करना

के बीच निर्णय लेते समय और MySQL में डेटा प्रकार, उनकी विशिष्ट विशेषताओं और वे आपके एप्लिकेशन की आवश्यकताओं के साथ कैसे संरेखित होते हैं, इस पर विचार करना आवश्यक है। प्रकार उन दिनांकों और समयों को संग्रहीत करने के लिए आदर्श है जो अलग-अलग समय क्षेत्रों में सुसंगत होते हैं, जैसे ऐतिहासिक रिकॉर्ड या घटना तिथियां जो उपयोगकर्ता के स्थान की परवाह किए बिना नहीं बदलनी चाहिए। यह है क्योंकि DATETIME समय क्षेत्र को ध्यान में नहीं रखता; यह दर्ज की गई सटीक तारीख और समय को संग्रहीत करता है, जिससे इसका उपयोग करना आसान हो जाता है लेकिन वैश्विक स्थिरता की आवश्यकता होने पर संभावित रूप से समस्याग्रस्त हो जाता है।

दूसरी ओर, प्रकार को यूटीसी के सापेक्ष समय मानों को संग्रहीत करने के लिए डिज़ाइन किया गया है, पुनर्प्राप्ति पर उन्हें स्वचालित रूप से सर्वर के समय क्षेत्र में परिवर्तित किया जाता है। यह बनाता है रिकॉर्ड निर्माण या अद्यतन समय जैसे परिवर्तनों को ट्रैक करने के लिए विशेष रूप से उपयोगी है, क्योंकि यह विभिन्न समय क्षेत्रों में स्थिरता सुनिश्चित करता है। जब साथ काम कर रहे हों , का उपयोग करना TIMESTAMP समय क्षेत्र अंतर के प्रबंधन को सरल बना सकता है, जिससे उपयोगकर्ताओं को सटीक स्थानीय समय प्रस्तुत करना आसान हो जाता है। तथापि, की तुलना में अधिक सीमित सीमा है , केवल 1970 से 2038 तक की तारीखों का समर्थन करता है, जो दीर्घकालिक अनुप्रयोगों के लिए एक विचार हो सकता है।

  1. MySQL में DATETIME और TIMESTAMP के बीच मुख्य अंतर क्या है?
  2. दिनांक और समय को वैसे ही संग्रहीत करता है, जबकि इसे UTC में संग्रहीत करता है और सर्वर के समय क्षेत्र में परिवर्तित करता है।
  3. इवेंट की तारीखें रिकॉर्ड करने के लिए मुझे किस डेटा प्रकार का उपयोग करना चाहिए?
  4. इवेंट की तारीखों के लिए बेहतर है क्योंकि यह समय क्षेत्रों में एकरूपता बनाए रखता है।
  5. रिकॉर्ड निर्माण समय को ट्रैक करने के लिए कौन सा डेटा प्रकार सर्वोत्तम है?
  6. निर्माण समय पर नज़र रखने के लिए आदर्श है क्योंकि यह स्वचालित रूप से वर्तमान समय का उपयोग करता है और समय क्षेत्रों के लिए समायोजित करता है।
  7. MySQL TIMESTAMP के साथ समय क्षेत्र को कैसे संभालता है?
  8. MySQL स्टोर यूटीसी में मान और पुनर्प्राप्ति पर उन्हें वर्तमान समय क्षेत्र में परिवर्तित करता है।
  9. क्या मैं TIMESTAMP का उपयोग करके 1970 से पहले की तारीखें संग्रहीत कर सकता हूँ?
  10. नहीं, केवल 1970 और 2038 के बीच की तारीखों का समर्थन करता है। उपयोग करें इस सीमा के बाहर की तारीखों के लिए.
  11. क्या रिकॉर्ड परिवर्तन पर टाइमस्टैम्प स्वचालित रूप से अपडेट हो जाता है?
  12. हाँ, यदि परिभाषित किया गया है और , टाइमस्टैम्प स्वचालित रूप से अपडेट हो जाता है।
  13. यदि मैं DATETIME फ़ील्ड में कोई अमान्य दिनांक डालूं तो क्या होगा?
  14. यदि तारीख अमान्य है, तो SQL मोड के आधार पर MySQL '0000-00-00 00:00:00' डालेगा।
  15. मैं विभिन्न सर्वरों पर समय भंडारण में एकरूपता कैसे सुनिश्चित कर सकता हूँ?
  16. का उपयोग करते हुए समय की स्थिरता सुनिश्चित करता है क्योंकि यह हर समय को यूटीसी में परिवर्तित करता है।
  17. क्या मैं DATETIME और TIMESTAMP के साथ फ़ंक्शंस का उपयोग कर सकता हूँ?
  18. हाँ, MySQL जैसे कार्य करता है और दोनों डेटा प्रकारों के साथ कार्य करें.
  19. कौन सा डेटा प्रकार अधिक भंडारण कुशल है?
  20. DATETIME के ​​8 बाइट्स की तुलना में 4 बाइट्स का उपयोग करते हुए, अधिक भंडारण कुशल है।

MySQL दिनांक और समय प्रकार पर अंतिम विचार

निष्कर्षतः, दोनों और MySQL डेटाबेस डिज़ाइन में डेटा प्रकारों का अपना स्थान होता है। ऐतिहासिक रिकॉर्ड के लिए या जब समय क्षेत्र की स्थिरता महत्वपूर्ण हो, तो इसे प्राथमिकता दी जाती है TIMESTAMP स्वचालित यूटीसी रूपांतरण के साथ परिवर्तनों को ट्रैक करने के लिए फायदेमंद है। सटीक और कुशल दिनांक और समय प्रबंधन सुनिश्चित करने के लिए आपकी पसंद को आपके आवेदन की विशिष्ट आवश्यकताओं के अनुरूप होना चाहिए।