2012-04-30 20 views
14

मुझे अपने mysql डेटाबेस, उपयोगकर्ताओं के जन्मदिन (जैसे 12-11-1990) में स्टोर करना होगा।जन्मदिन को स्टोर करने का सबसे अच्छा क्षेत्र क्या है?

स्टोर करने के लिए मुझे किस क्षेत्र प्रकार का उपयोग करना है?

+3

क्या आपका मतलब है कि किस प्रकार का प्रकार 'दिनांक' – mgraph

+0

DATE यह करेगा :) –

+1

व्यक्तिगत रूप से मुझे टाइमस्टैम्प पसंद है, लेकिन आपको शायद ओज़ी के उत्तर के साथ जाना चाहिए, MYSQL DATE जाने का आधिकारिक तरीका है। –

उत्तर

16

किसी दिनांक को संग्रहीत करने के लिए, आपको शायद use a date होना चाहिए। दस्तावेज़ीकरण उद्धृत करने के लिए:

दिनांक प्रकार का उपयोग दिनांक भाग के साथ मानों के लिए किया जाता है लेकिन कोई समय नहीं होता है।

0

DATE बहुत स्पष्ट है?

+8

ऑर्नेरी होने की कोई ज़रूरत नहीं है .... (मैंने डाउनवोट नहीं किया ...) –

+1

उत्सुक लोगों ने इसका अर्थ कैसे लिया। मैं वास्तव में इसे पढ़ता हूं "क्या यह आपकी तारीख की तारीख नहीं है जैसा कि यह स्पष्ट प्रतीत होता है?"। @Jason को उसके जवाब के बारे में संदेह हो सकता है। नतीजतन मुझे संदेह का लाभ देने के लिए मेरे लिए +1। –

3

"DATE" अच्छा होना चाहिए।

दिनांक प्रकार का उपयोग दिनांक भाग वाले मानों के लिए किया जाता है लेकिन कोई समय नहीं होता है। MySQL 'YYYY-MM-DD' प्रारूप में DATE मानों को पुनर्प्राप्त और प्रदर्शित करता है। समर्थित सीमा '1000-01-01' से '9999-12-31' है।

अधिक विवरण: http://dev.mysql.com/doc/refman/5.5/en/datetime.html

3

आपको DATE के रूप में की तारीख की दुकान चाहिए।

और स्थान एक varchar (PHP या Java) के रूप में।

लोकेल :)

कुछ भी नहीं Weibo की तरह कुछ (चीनी ट्विटर) से एक ईमेल हो रही है जब अभी तक इसकी नहीं जैसे कि अपना जन्मदिन मत भूलना।

10

आप इसे DATE ऑब्जेक्ट के रूप में स्टोर कर सकते हैं जैसा कि आप आमतौर पर गैर-दोहराने वाली तिथियों के साथ करते हैं। , अगर आप MySQL का उपयोग कर रहे (मेरा मानना ​​है कि अन्य डीबीएमएस भी इस के लिए कार्य किया है) आप MySQL कार्यों का उपयोग कर जन्मदिन प्राप्त कर सकते हैं के रूप में वर्णित here:

SELECT * 
FROM table_name 
WHERE 
    MONTH(date_field) = desired_month AND 
    DAY(date_field) = desired_day 

इस विधि थोड़ा धीमा हो सकता है जब रिकॉर्ड के हजारों के साथ काम । यदि यह आपका मामला है, तो आप जन्मदिन को 3 अलग-अलग आईएनटी के साथ स्टोर कर सकते हैं, प्रत्येक के लिए प्रत्येक (वर्ष, महीना, दिन)। तो फिर तुम इस तरह जन्मदिन खोज:

SELECT * 
FROM table_name 
WHERE 
    month_field = desired_month AND 
    day_field = desired_day 

आप यह पिछले विधि का उपयोग करते हैं, तो मैं आपको सलाह देंगे भी जन्मदिन की एक DATETIME संस्करण स्टोर करने के लिए इतना है कि आप युद्धाभ्यास के किसी भी प्रकार के बिना तारीख बना सकते हैं। आप अतिरिक्त रूप से 3 फ़ील्ड (गैर-अद्वितीय) में से प्रत्येक को इंडेक्स कर सकते हैं ताकि उन्हें पुनर्प्राप्त करना तेज़ हो।

+2

फरवरी को शामिल करें। गैर-लीप वर्षों के लिए 1 मार्च को 2 9 वें जन्मदिन। –

संबंधित मुद्दे

 संबंधित मुद्दे