উত্তর:
SELECT
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) AS StartOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) AS EndOfYear
উপরের জিজ্ঞাসাটি 31 ডিসেম্বরের শুরুতে মধ্যরাতের জন্য একটি তারিখের মান দেয় This এটি বছরের শেষ মুহুর্তের প্রায় 24 ঘন্টা কম। আপনি যদি 31 ডিসেম্বর হতে পারে এমন সময়টি অন্তর্ভুক্ত করতে চান তবে আপনার তুলনা করে পরবর্তী বছরের প্রথমটির সাথে <
তুলনা করা উচিত। অথবা আপনি চলতি বছরের শেষ কয়েক মিলি সেকেন্ডের সাথে তুলনা করতে পারেন, তবে আপনি যদি ড্যাটটাইম (যেমন DATETIME2) ব্যতীত অন্য কিছু ব্যবহার করে থাকেন তবে এটি একটি ফাঁক ফেলে দেয়:
SELECT
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) AS StartOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) AS LastDayOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0) AS FirstOfNextYear,
DATEADD(ms, -3, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0)) AS LastTimeOfYear
প্রযুক্তি সম্পর্কিত তথ্য
সঙ্গে 1900 সাল থেকে বছরের গণনায় figuring আউট দ্বারা এই কাজ DATEDIFF(yy, 0, GETDATE())
এবং তারপর একটি তারিখ থেকে যে যোগ শূন্য = জানুয়ারী 1, 1900 এই প্রতিস্থাপন একটি অবাধ তারিখ জন্য কাজ পরিবর্তন করা যাবে GETDATE()
প্রতিস্থাপন অংশ বা একটি অবাধ বছর DATEDIFF(...)
সঙ্গে ফাংশন "বছর - 1900."
SELECT
DATEADD(yy, DATEDIFF(yy, 0, '20150301'), 0) AS StartOfYearForMarch2015,
DATEADD(yy, 2015 - 1900, 0) AS StartOfYearFor2015
এখানে মোটামুটি সহজ উপায়;
SELECT DATEFROMPARTS(YEAR(GETDATE()), 1, 1) AS 'First Day of Current Year';
SELECT DATEFROMPARTS(YEAR(GETDATE()), 12, 31) AS 'End of Current Year';
এটি সেক্সি নয়, তবে এটি কাজ করে।
ব্যবহার DATEPART
করে প্রাপ্ত বর্তমান তারিখ থেকে আপনি ফাংশন ব্যবহার করে বর্তমান বছরটি পেতে পারেনgetUTCDate()
SELECT
'01/01/' + CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate())),
'31/12/' + CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
DATETIME
স্ট্রিংয়ের পরিবর্তে পেতে পারেন এবং সম্ভবত এটি প্রশ্ন অনুসারে প্রত্যাশিত আউটপুটটির সাথে মেলে না।
yyyyMMdd
দ্ব্যর্থহীন।
কেবল লিখুন:
select convert (date,DATEADD(YEAR,DATEDIFF(YEAR,0,GETDATE()),0))
বছরের শুরু তারিখ।
select convert (date,DATEADD(YEAR, DATEDIFF(YEAR,0,GETDATE()) + 1, -1))
প্রতি বছর প্রথম তারিখ হিসাবে 1 তম এবং 31 তারিখ হিসাবে শেষ তারিখ হিসাবে আপনি যা করতে চান তা কেবল বছরটিকে সেই দিন এবং মাসের সাথে সংযুক্ত করা হয় উদাহরণস্বরূপ: -
SELECT '01/01/'+cast(year(getdate()) as varchar(4)) as [First Day],
'12/31/'+cast(year(getdate()) as varchar(4)) as [Last Day]
বছরের প্রথম এবং শেষ দিনটি পেতে, কেউ এই CONCAT
ফাংশনটি ব্যবহার করতে পারেন । ফলস্বরূপ মানটি যে কোনও প্রকারে ফেলে দেওয়া যেতে পারে।
CONCAT(YEAR(Getdate()),'-01-01') FirstOfYear,
CONCAT(YEAR(GETDATE()),'-12-31') LastOfYear
চলতি বছরের শুরু তারিখের জন্য:
SELECT DATEADD(DD,-DATEPART(DY,GETDATE())+1,GETDATE())
চলতি বছরের শেষ তারিখের জন্য:
SELECT DATEADD(DD,-1,DATEADD(YY,DATEDIFF(YY,0,GETDATE())+1,0))
অন্য উপায়: (যেহেতু এসকিউএল সার্ভার ২০১২)
SELECT
DATEFROMPARTS(YEAR(GETDATE()), 1, 1) FirstDay,
DATEFROMPARTS(YEAR(GETDATE()),12,31) LastDay
এটি দেখুন:
select convert(varchar(12),(DateAdd(month,(Month(getdate())-1) * -1, DateAdd(Day,(Day(getdate())-1) * -1,getdate()))),103) as StartYear,
convert(varchar(12),DateAdd(month,12 - Month(getdate()), DateAdd(Day,(31 - Day(getdate())),getdate())),103) as EndYear
SELECT DATEADD(DD,-DATEPART(DY,GETDATE())+1,GETDATE())
print Cast('1/1/' + cast(datepart(yyyy, getdate()) as nvarchar(4)) as date)
দেখে মনে হচ্ছে আপনি প্রদত্ত বছরের জন্য সমস্ত কিছু অপারেশন করাতে আগ্রহী, যদি সত্যিই এটি হয় তবে আমি YEAR () ফাংশনটি এভাবে ব্যবহার করার পরামর্শ দেব :
SELECT * FROM `table` WHERE YEAR(date_column) = '2012';
DAY () এবং মাসের () এর ক্ষেত্রেও এটি একই রকম । এগুলি মাইএসকিউএল / মারিয়াডিবি ভেরিয়েন্টগুলির জন্যও উপলব্ধ এবং এসকিউএল সার্ভার ২০০৮ সালে প্রবর্তিত হয়েছিল (সুতরাং নির্দিষ্ট ২০০০-এর জন্য নয়)।
select to_date(substr(sysdate,1, 4) || '01/01'), to_date(substr(sysdate,1, 4) || '12/31')
from dual
মাইক্রোসফ্ট এসকিউএল সার্ভারে (টি-এসকিউএল) নিম্নলিখিত হিসাবে এটি করা যেতে পারে
--beginning of year
select '01/01/' + LTRIM(STR(YEAR(CURRENT_TIMESTAMP)))
--end of year
select '12/31/' + LTRIM(STR(YEAR(CURRENT_TIMESTAMP)))
CURRENT_TIMESTAMP - ক্যোয়ারি কার্যকর করার সময় স্কেল সার্ভারের তারিখ প্রদান করে।
বছর - বর্তমান সময়ের স্ট্যাম্পের বছরের অংশটি পায়।
STR , LTRIM - এই দুটি ফাংশন যে আমরা একটি varchar আমাদের কাঙ্ক্ষিত প্রেফিক্স সহ concatinated যাবে এই রূপান্তর করতে পারেন, যাতে প্রয়োগ করা হয় (এই ক্ষেত্রে এটা হয় বছরের প্রথম তারিখ বা বছরের শেষ তারিখ)। যেকোন কারণে YEAR ফাংশন দ্বারা উত্পন্ন ফলাফলের উপসর্গের স্থান রয়েছে। তাদের ঠিক করার জন্য আমরা এলটিআরআইএম ফাংশনটি ব্যবহার করি যা ছাঁটা বাকি।
এটি যদি জানুয়ারীর প্রথম দিকে পৌঁছে যায় তবে এটি সম্ভবত শেষ বছরের তারিখ হতে পারে।
select
convert(date, DATEADD(yy, DATEDIFF(yy, 0, DATEadd(day, -1,getdate())), 0), 103 ) AS StartOfYear,
convert(date, DATEADD(yy, DATEDIFF(yy, 0, DATEDIFF(day, -1,getdate()))+1, -1), 103 )AS EndOfYear
এটা চেষ্টা কর:
DATE_FORMAT(NOW(),'01/01/%Y')
DATE_FORMAT(NOW(),'31/12/%Y')
Msg 195, Level 15, State 10, Line 1 'NOW' is not a recognized function name.
--- লালমুনি ডেমোস ---
create table Users
(
userid int,date_of_birth date
)
--- মান সন্নিবেশ করান ---
insert into Users values(4,'9/10/1991')
select DATEDIFF(year,date_of_birth, getdate()) - (CASE WHEN (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()),date_of_birth)) > getdate() THEN 1 ELSE 0 END) as Years,
MONTH(getdate() - (DATEADD(year, DATEDIFF(year, date_of_birth, getdate()), date_of_birth))) - 1 as Months,
DAY(getdate() - (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()), date_of_birth))) - 1 as Days,
from users