MySQL में DATETIME फ़ील्ड से केवल दिनांक का चयन कैसे करें?


115

मेरे पास MySQL डेटाबेस में एक टेबल है जिसे सेट किया गया है DATETIME। मुझे SELECTकेवल DATE और समय को छोड़कर इस तालिका में आवश्यकता है ।

मैं SELECTइस तालिका में केवल दिनांक और समय को दरकिनार करके कैसे करूं , भले ही वह विशिष्ट कॉलम सेट किया गया हो DATETIME?


उदाहरण

अब यह है: 2012-01-23 09:24:41

मुझे इसके लिए SELECTकेवल करने की आवश्यकता है :2012-01-23


जवाबों:


165

SELECT DATE(ColumnName) FROM tablename;

MySQL DATE () फ़ंक्शन पर अधिक ।


मैं ऐसा करने की कोशिश कर रहा हूं, लेकिन यह $ क्वेरी = "प्रोफाइल से चयन नहीं करता है, जहां दिनांक (DateR = ="। $। "")) काम नहीं कर रहा है।
डिएगो

2
date (datereg) = 'dateHere'
Balaswamy Vaddeman

$ क्वेरी = "प्रोफाइल का चयन करें * जहाँ से दिनांक (DateReg) = '"। $ दिनांक। "" "; यह काम करना चाहिए। सुनिश्चित करें कि दोनों तिथियां एक ही प्रारूप की हैं, यदि 'जहां "खंड में उपयोग करने से पहले $ तिथि को प्रारूपित नहीं किया गया है।
Clain Dsilva

मुझे लगता है कि आपको इसके साथ
लापरवाही बरतने की

कॉलम के नाम के पहले और बाद में ग्रेव उच्चारण चिह्न जोड़ना न भूलें। कुछ MySql संस्करण में यह वर्तमान दिनांक दिखा सकता है।
14:20 बजे user2092317

40

आप date_format का उपयोग कर सकते हैं

select DATE_FORMAT(date,'%y-%m-%d') from tablename

समय क्षेत्र के लिए

sql2 = "SELECT DATE_FORMAT(CONVERT_TZ(CURDATE(),'US/Central','Asia/Karachi'),'%Y-%m-%d');"

यह सही काम करता है क्योंकि अब मैं निश्चित दिनों से डेटा का चयन कर सकता हूं केवल '% d' फॉर्मेट।
mjwrazor

टैबलेनमे से DATE_FORMAT (दिनांक, '% Y-% m-% d') का चयन छोटे "y" के बजाय वर्ष उपयोग पूंजी "Y" नहीं कर रहा है
Nirav Joshi

14

आप select DATE(time) from appointment_detailsकेवल दिनांक के लिए उपयोग कर सकते हैं

या

आप select TIME(time) from appointment_detailsकेवल समय के लिए उपयोग कर सकते हैं


13


आज के लिए उपयोग करने का प्रयास करें :

SELECT * FROM `tbl_name` where DATE(column_name) = CURDATE()


चयनित तिथि के लिए:

SELECT * FROM `tbl_name` where DATE(column_name) = DATE('2016-01-14')

2020: धन्यवाद दोस्त!
मार्कोजेन

10

MYSQL में हमारे पास DATE_FORMAT (दिनांक, प्रारूप) नामक फ़ंक्शन है । आपके मामले में आपका चयन इस तरह हो जाएगा: -

SELECT DATE_FORMAT(dateTimeFieldName,"%a%m%Y") as dateFieldName FROM table_name

मैसकल डेट और टाइम कार्यों के बारे में अधिक जानकारी के लिए यहां क्लिक करें।



6

मैं एक कर की कोशिश की SELECT DATE(ColumnName)है, लेकिन इस काम नहीं करता है के लिए TIMESTAMPकॉलम क्योंकि वे यूटीसी में जमा हो जाती और यूटीसी तारीख बजाय स्थानीय तारीख को परिवर्तित करने का प्रयोग किया जाता है। मुझे उन पंक्तियों का चयन करने की आवश्यकता थी जो मेरे समय क्षेत्र में एक विशिष्ट तिथि पर थीं, इसलिए इस प्रश्न के उत्तर को बलस्वामी वडमन के इस प्रश्न के साथ जोड़कर , यही मैंने किया:

यदि आप दिनांक के रूप में संग्रहीत कर रहे हैं DATETIME

बस करो SELECT DATE(ColumnName)

यदि आप दिनांक के रूप में संग्रहीत कर रहे हैं TIMESTAMP

यदि आपने ऐसा पहले से नहीं किया है तो समय क्षेत्र डेटा को MySQL में लोड करें । विंडोज सर्वर के लिए पिछला लिंक देखें। Linux, FreeBSD, Solaris और OS X सर्वर के लिए जो आप करेंगे:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

फिर अपनी क्वेरी को इस तरह प्रारूपित करें:

SELECT DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York'))

आप इसे WHEREक्वेरी के भाग में भी डाल सकते हैं (लेकिन ध्यान दें कि उस कॉलम पर अनुक्रमणिका काम नहीं करेगी):

SELECT * FROM tableName
WHERE DATE(CONVERT_TZ(`ColumnName`, 'UTC', 'America/New_York')) >= '2015-02-04'

( America/New_Yorkअपने स्थानीय समय क्षेत्र के लिए स्पष्ट रूप से स्थानापन्न ।)


Zone इसका एकमात्र अपवाद यह है कि यदि आपका स्थानीय समय क्षेत्र GMT है और आप डेलाइट बचत नहीं करते हैं क्योंकि आपका स्थानीय समय UTC के समान है।


3

कोशिश करें SELECT * FROM Profiles WHERE date(DateReg)=$dateकि $ कहां yyyy-mm-dd में है

वैकल्पिक रूप से SELECT * FROM Profiles WHERE left(DateReg,10)=$date

चियर्स


3

यो यह कोशिश कर सकते हैं:

SELECT CURDATE();

यदि आप निम्नलिखित की जाँच करें:

SELECT NOW(); SELECT DATE(NOW()); SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');

आप देख सकते हैं कि इसमें लंबा समय लगता है।





1
SELECT DATE_FORMAT(NOW() - INTERVAL FLOOR(RAND() * 14) DAY,'%Y-%m-%d');

इसका उपयोग 'yyyy-mm-dd' प्रारूप में दिनांक प्राप्त करने के लिए किया जा सकता है।


1

यदि समय स्तंभ टाइमस्टैम्प पर है, तो आपको इस क्वेरी का उपयोग करके उस टाइमस्टैम्प से दिनांक मान प्राप्त होगा

SELECT DATE(FROM_UNIXTIME(time)) from table 

0

वास्तव में इस सवाल का एक काम समाधान डाल के हित में:

SELECT ... WHERE `myDateColumn` >= DATE(DATE_FORMAT(NOW(),'%Y-%m-%d'));

जाहिर है, आप अपनी इच्छित तिथि या चर को अब बदल सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.