মাইএসকিউএল-এ একটি ডেটাটাইম ক্ষেত্র থেকে কেবল তারিখটি কীভাবে নির্বাচন করবেন?


115

আমার মাইএসকিউএল ডাটাবেসে একটি টেবিল রয়েছে যা সেট আপ করা আছে DATETIME। আমার SELECTএই টেবিলটিতে কেবলমাত্র তারিখ এবং সময় বাদ দিয়ে প্রয়োজন need

SELECTসুনির্দিষ্ট কলামটি সেট করা থাকলেও কীভাবে আমি এই টেবিলটিতে কেবল তারিখ এবং সময়কে বাইপাস করে করব DATETIME?


উদাহরণ

এখন এটা: 2012-01-23 09:24:41

এর জন্য আমার SELECTএকটাই করা দরকার :2012-01-23


উত্তর:


165

SELECT DATE(ColumnName) FROM tablename;

আরো মাইএসকিউএল তারিখ () ফাংশন


আমি এটি করার চেষ্টা করছি তবে এটি কাজ করে না $ ক্যোয়ারী = "প্রোফাইলগুলি থেকে নির্বাচন করুন * তারিখটি (তারিখরেগ = '" $ তারিখ। "')";
ডিয়েগোপি

2
তারিখ (তারিখ) = 'তারিখহিরে'
বালাসস্বামী ভাদ্দেমন

$ ক্যোয়ারী = "প্রোফাইলগুলি থেকে নির্বাচন করুন যেখানে তারিখ (তারিখের রেগ) = '" $ তারিখ "" ""; এই কাজ করা উচিত. নিশ্চিত হয়ে নিন যে উভয় তারিখ একই বিন্যাসে রয়েছে, যদি 'যেখানে'
ধারাটিতে

আমি মনে করি আপনাকে এ থেকে যত্নবান হওয়া দরকার কারণ এটি কলামনেমে কোনও সূচক ব্যবহার করবে না
d0x

কলাম নামের আগে ও পরে গ্রেভ অ্যাকসেন্ট প্রতীক যুক্ত করতে ভুলে যান না। কিছু মাইএসকিএল সংস্করণে এটি বর্তমান তারিখটি দেখায়।
ব্যবহারকারী 2092317

40

আপনি তারিখ_ফর্ম্যাট ব্যবহার করতে পারেন

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

ছোট "y" টেবিলের নাম থেকে DATE_FORMAT (তারিখ, '% Y-% m-% d') নির্বাচন করুন তার পরিবর্তে বছরের ব্যবহারের মূলধন "Y"
ফিরছে

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

এমওয়াইএসকিউএল এ আমাদের 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_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আপনার স্থানীয় সময় অঞ্চল জন্য বিকল্প ।)


To এর একমাত্র ব্যতিক্রম হ'ল যদি আপনার স্থানীয় সময় অঞ্চলটি জিএমটি হয় এবং আপনি দিবালোক সঞ্চয় না করেন কারণ আপনার স্থানীয় সময়টি ইউটিসির মতো।


3

SELECT * FROM Profiles WHERE date(DateReg)=$dateYy তারিখটি 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'));

স্পষ্টতই, আপনি NOW () ফাংশনটি যে কোনও তারিখ বা ভেরিয়েবলের সাথে পরিবর্তন করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.