এসকিউএল তারিখ থেকে কেবল মাস এবং বছর পাচ্ছেন


133

আমাকে কেবল মাসের অ্যাক্সেস করতে হবে S এসকিউএল সার্ভারে তারিখের ক্ষেত্র থেকে ear

উত্তর:


170

ইতিমধ্যে প্রদত্ত পরামর্শগুলির পাশাপাশি, আপনার প্রশ্নটি থেকে আমি আরও একটি সম্ভাব্য সম্ভাবনা জানাতে পারি:
- আপনি এখনও ফলাফলটি তারিখ হতে
চান - তবে আপনি দিন, ঘন্টা ইত্যাদি 'বাতিল' করতে চান
- এক বছর / মাস রেখে যাচ্ছেন শুধুমাত্র তারিখের ক্ষেত্র

SELECT
   DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
   <your_table>

এটি একটি বেস তারিখ (0) থেকে পুরো মাসের সংখ্যা পায় এবং তারপরে তাদের সেই বেস তারিখে যুক্ত করে। সুতরাং তারিখটি যে মাসে রয়েছে তা মাসের নিচে গোলাকার।

দ্রষ্টব্য: এসকিউএল সার্ভার ২০০৮-এ, আপনার এখনও টাইম সংযুক্ত থাকবে 00: 00: 00.000 এটি পুরোপুরি দিন এবং সময়ের কোনও স্বরলিপি "মুছে ফেলার" সমান নয়। প্রথম দিনটিও সেট করে। যেমন 2009-10-01 00: 00: 00.000


1
এটি আমার পক্ষে মোটেও কার্যকর হয়নি। এটি আমাকে 2023-02-01 00: 00: 00.000 ফলাফল হিসাবে দেয়।
Dss

1
@ ডিএসএস - কোন পরামিতি সহ? আসল এসকিউএল দেখান এবং আমি একবার দেখে খুশি।
ম্যাটবাইলি

@ ম্যাটবাইলি নির্বাচন করুন তারিখ (মাস, ডেটেডিএফএফ (মাস, 0, লাস্টসেলডিট), 0) AS [Year_month_date_field] থেকে db1. প্রোডাক্ট যেখানে প্রোডাক্ট আইডি = 123 "লাস্টসেলডেট" কলামটি "(তারিখের সময়, নাল নয়)" হিসাবে ঘোষণা করা হয়েছে এবং আমি পেয়েছি: 2014-09-01 00: 00: 00.000
ডিএসএস

1
@ ডিএসএস - হ্যাঁ, এটি সঠিক বলে মনে হচ্ছে। এটি ২০১৪ সালের সেপ্টেম্বরের একেবারে গোড়া থেকে শুরু হয়ে গেছে There কোনও "বছর এবং মাস কেবল" ডেটা টাইপ নেই, তাই প্রতি মাসের প্রথম মুহূর্তটি ব্যবহার করা হচ্ছে স্ট্যান্ডার্ড অনুশীলন। এই DATETIME মানটিকে স্ট্রিংয়ে রূপান্তর করার সময় (অ্যাপ্লিকেশন স্তর, উপস্থাপনা স্তর, প্রতিবেদন স্তর ইত্যাদি) আপনি সর্বদা কেবল বছর এবং মাসের অংশগুলির সাথে এটি ফর্ম্যাট করতে বেছে নিতে পারেন। তবে "ডাটাবেসে" ডেটা ম্যানিপুলেশনের ক্ষেত্রে এটি সঠিক।
ম্যাটবাইলি

আমি মনে করি কারণ আপনার উত্তরটি "তারিখ" ক্ষেত্রের সাথে ব্যবহার করার উদ্দেশ্যে হয়েছিল কিন্তু আমি একটি "ডেটটাইম" ক্ষেত্রটি ব্যবহার করছি যাতে সম্ভবত এটিই সমস্যা।
ডিএসএস

133
select month(dateField), year(dateField)

2
মহান! আপনি এগুলিকে একটি কলামে সংযুক্ত করতে পারেন: 'castালাই (মাস্টার (তারিখফিল্ড) বারচর হিসাবে নির্বাচন করুন) +' নির্বাচন করুন। + castালাই (বছর (তারিখফিল্ড) বর্ণা as় হিসাবে) '
izik f


32
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)

2
তারিখ পার্ট (এমএম, ডেটওয়াল) 'এমএম' ফিরিয়ে দিচ্ছে না। যদি মাসটি 1-9 এর মধ্যে হয় তবে এটি কেবল একক অঙ্ক ফেরত।
জয়করত

"এমএম" এর পরিবর্তে এটি "মাস" বলা উচিত: 'নির্বাচন তারিখ (মাস, গেটডেট ())'
Renne007


15

এটি করার জন্য দুটি এসকিউএল ফাংশন রয়েছে:

বিশদ সম্পর্কিত লিঙ্কযুক্ত ডকুমেন্টেশন দেখুন।


5
আমি কমপক্ষে কয়েকটি সংক্ষিপ্ত উদাহরণ রাখার পরামর্শ দেব কারণ লিঙ্কগুলি সর্বদা চিরকাল থাকে না ... আসলে সেগুলি আর ভাল নয় good
ক্যারল

12

এটি পাশাপাশি সহায়ক হতে পারে।

SELECT YEAR(0), MONTH(0), DAY(0);

অথবা

SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());

অথবা

SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);

যাইহোক, রিটার্ন ক্ষেত্রে "0" অপসারণ করবেন না?
সিই 8


10
convert(varchar(7), <date_field>, 120)
because 120 results in 'yyyy-MM-dd' which is varchar(10)
using varchar(7) will display only year and month

example:
select convert(varchar(7), <date_field>, 120), COUNT(*)
from <some_table>
group by convert(varchar(7), <date_field>, 120)
order by 1

6

আমি আপনার প্রশ্নটি দুটি উপায়ে ব্যাখ্যা করছি।

ক) আপনার কেবল মাস ও বৎসর আলাদাভাবে প্রয়োজন যার ক্ষেত্রে উত্তর এখানে

select 
        [YEAR] = YEAR(getdate())
        ,[YEAR] = DATEPART(YY,getdate())
        , [MONTH] = month(getdate())
        ,[MONTH] = DATEPART(mm,getdate())
        ,[MONTH NAME] = DATENAME(mm, getdate()) 

খ)

আপনি প্রদত্ত তারিখের বলে থেকে প্রদর্শন করাতে চান '2009-11-24 09:01:55.483'মধ্যে MONTH.YEAR বিন্যাস। সুতরাং আউটপুট হিসাবে আসা উচিত11.2009 এই ক্ষেত্রে ।

যদি এটির বিষয়টি মনে করা হয় তবে এটি চেষ্টা করুন (অন্যান্য বিকল্পের মধ্যেও)

select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')

5

কিছু ডাটাবেস যেমন ফাংশন সমর্থন করে MS ACCESSবা RODBCনাও পারে তবে SQL SERVERফাংশন রয়েছে এমন কোনও ডাটাবেসের জন্য FORMATআপনি কেবল এটি করতে পারেন:

SELECT FORMAT(<your-date-field>,"YYYY-MM") AS year-date FROM <your-table>


3
CONCAT (datepart (yy,DATE), FORMAT (DATE,'MM')) 

আপনি ছয় অঙ্কের ফলাফল চাইলে আপনাকে 201601 দেয়


2

এটা চেষ্টা কর

select to_char(DATEFIELD,'MON') from YOUR_TABLE

যেমন।

select to_char(sysdate, 'MON') from dual

2

এটা চেষ্টা কর:

পর্তুগীজ

SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)

ফলাফল: মাও 2019


ইংরেজি

SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'en-US') + ' ' + convert(varchar(10),year(getdate()),100)

ফলাফল: মে 2019

আপনি যদি অন্য কোনও ভাষাতে চান তবে ' pt-pt ' বা ' en-US ' এর সাথে যে কোনও লিঙ্কে পরিবর্তন করুন


1

আমার অনুরূপ কিছু করার জন্য একটি নির্দিষ্ট প্রয়োজনীয়তা ছিল যেখানে এটি মাস-বছর দেখায় যা নিম্নলিখিত দ্বারা করা যেতে পারে:

SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'

আমার বিশেষ ক্ষেত্রে, আমি এটি 2 ডিজিট বছরের সাথে 3 অক্ষরের মাসের অবনমন করতে চাই, এটির মতো কিছু খুঁজছি: SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'



0

আমার ডাটাবেস উপরের বেশিরভাগ ফাংশন সমর্থন করে না তবে আমি দেখতে পেয়েছি যে এটি কাজ করে:

SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;

উদাহরণ স্বরূপ: SELECT SUBSTR(created, 1,7) FROM table;

"yyyy-mm" ফর্ম্যাটে বছর এবং মাস ফেরত দেয়




0

প্রশ্ন :- Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName

আউটপুট: - জানুয়ারী -2018

সাধারণ তারিখক্ষেত্র আমরা ব্যবহার করতে পারি

datename(m,<DateField>)+' '+cast(datepart(yyyy,<DateField>) as varchar) as FieldName


0
select convert(varchar(11), transfer_date, 106) 

আমাকে 07 মার্চ 2018 হিসাবে ফর্ম্যাট করা তারিখের আমার কাঙ্ক্ষিত ফলাফল পেয়েছে

আমার কলাম 'ট্রান্সফার_ডেট' একটি ডেটটাইম টাইপ কলাম এবং আমি আজিউরে এসকিউএল সার্ভার 2017 ব্যবহার করছি


0

কনক্যাট (মাস (GETDATE ()), '।', বছর (GETDATE ()) নির্বাচন করুন

আউটপুট: 5.2020

কনক্যাট (তারিখ (মাস, GETDATE ()), '।', বছর (GETDATE ()) নির্বাচন করুন

আউটপুট: মে .2020

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