SELECT GETDATE()
রিটার্নস: 2008-09-22 15:24:13.790
আমি সময় অংশ ছাড়াই সেই তারিখের অংশটি চাই: 2008-09-22 00:00:00.000
আমি কীভাবে এটি পেতে পারি?
SELECT GETDATE()
রিটার্নস: 2008-09-22 15:24:13.790
আমি সময় অংশ ছাড়াই সেই তারিখের অংশটি চাই: 2008-09-22 00:00:00.000
আমি কীভাবে এটি পেতে পারি?
উত্তর:
উপর SQL Server 2008
এবং উচ্চতর, আপনার CONVERT
তারিখ করা উচিত :
SELECT CONVERT(date, getdate())
পুরানো সংস্করণগুলিতে, আপনি নিম্নলিখিতগুলি করতে পারেন:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
উদাহরণ স্বরূপ
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
আমাকে দেয়
2008-09-22 00:00:00.000
পেশাদাররা:
varchar
<-> datetime
রূপান্তর প্রয়োজনlocale
যেমনটি মাইকেল পরামর্শ দিয়েছেন
এই রূপটি ব্যবহার করুন: SELECT DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
select getdate()
SELECT DATEADD(hh, DATEDIFF(hh, 0, getdate()), 0)
SELECT DATEADD(hh, 0, DATEDIFF(hh, 0, getdate()))
SELECT DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, getdate()))
SELECT DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)
SELECT DATEADD(mm, 0, DATEDIFF(mm, 0, getdate()))
SELECT DATEADD(yy, DATEDIFF(yy, 0, getdate()), 0)
SELECT DATEADD(yy, 0, DATEDIFF(yy, 0, getdate()))
আউটপুট:
2019-04-19 08:09:35.557
2019-04-19 08:00:00.000
4763-02-17 00:00:00.000
2019-04-19 00:00:00.000
2019-04-19 00:00:00.000
2019-04-01 00:00:00.000
1903-12-03 00:00:00.000
2019-01-01 00:00:00.000
1900-04-30 00:00:00.000
datetime
ডাটা টাইপ থাকতে পারে না সব সময়ে কোন সময় । আমি মনে করি আপনি ব্যবহারকারীর উপস্থাপনা সহ ডেটা স্টোরেজকে বিভ্রান্ত করছেন। যদি আপনি চান সমস্ত কিছু যদি কোনও ব্যবহারকারীকে এমন স্ট্রিং দেখানোর উপায় হয় যার কোনও সময়ের অংশ থাকে না (শূন্য নয়, কেবল ফাঁকা অংশ) তবে আপনি কেবল চান Convert(varchar(30), @Date, 101)
বা অনুরূপ কিছু। আরও তথ্যের জন্য এসকিউএল সার্ভার বই অনলাইন • কাস্ট এবং রূপান্তর দেখুন।
CAST(... AS DATE)
বা CONVERT(DATE, ...)
, যা এই খুব পৃষ্ঠায় প্রায়শই উল্লেখ করা হয়েছে।
SELECT DATEADD(dd, DATEDIFF(dd, 0, @your_date), 0)
কারণ তারপরে একটি স্বেচ্ছাসেবী স্তরে আপনার কেটে dd
দেওয়ার জন্য অন্য কোনও datepart
কীওয়ার্ডের জন্য পরিবর্তন করা যেতে পারে datetime
।
এসকিউএল সার্ভার ২০০৮-তে এখন একটি 'তারিখ' ডেটা টাইপ রয়েছে যা সময়মাত্রা ছাড়াই কেবল একটি তারিখ থাকে। এসকিউএল সার্ভার ২০০৮ এবং এর বাইরে যে কেউ ব্যবহার করছেন তারা নিম্নলিখিতটি করতে পারেন:
SELECT CONVERT(date, GETDATE())
যদি এসকিউএল ২০০৮ বা তার বেশি ব্যবহার করা হয়:
select cast(getdate() as date)
DateTime2
পরিবর্তে ব্যবহার করুন এবং এটি সূক্ষ্ম কাজ করে। স্কলফিল্ড.com
2015-10-01
কারণে DateTime
। কোন প্রকার ছাড়াই চেষ্টা করুন Date
, এটিও ফলন দেয় 2015-10-01
! declare @date1 datetime = '2015-09-30 23:59:59.999';select @date1
=>2015-10-01
DATEADD এবং DATEDIFF বর্ণচর্চায় কনভার্টিংয়ের চেয়ে ভাল। উভয় প্রশ্নের একই কার্যনির্বাহী পরিকল্পনা রয়েছে, তবে মৃত্যুদণ্ড কার্যকর করার পরিকল্পনাগুলি মূলত ডেটা অ্যাক্সেস কৌশলগুলি সম্পর্কে থাকে এবং সবসময় সিপিইউর সাথে জড়িত অন্তর্নিহিত ব্যয়গুলি সমস্ত টুকরো সঞ্চালনের জন্য প্রকাশিত হয় না। যদি উভয় কোয়েরি কয়েক মিলিয়ন সারি সহ কোনও টেবিলের বিরুদ্ধে চালানো হয়, তবে ডেটডিফ ব্যবহার করে সিপিইউ সময়টি কনভার্ট সিপিইউ সময়ের 1/3 য় কাছাকাছি হতে পারে!
প্রশ্নের জন্য মৃত্যুদণ্ড কার্যকর করার পরিকল্পনাগুলি দেখতে:
set showplan_text on
GO
DATEADD এবং DATEDIFF উভয়ই একটি CONVERT_IMPLICIT কার্যকর করবে।
যদিও রূপান্তর করুন সমাধান সহজ পড়ার জন্য সহজ কিছু জন্য, এটা হল ধীর। ডেটটাইমে ফেরত কাস্ট করার দরকার নেই (এটি স্পষ্টভাবে সার্ভার দ্বারা সম্পন্ন করা হয়েছে)। ডেটডিফ পদ্ধতিতে ডেটএডএডের পরেও বাস্তবের প্রয়োজন নেই কারণ পূর্ণসংখ্যার ফলাফলটিও সুস্পষ্টভাবে ডেটটাইমে রূপান্তরিত হবে।
কনভার্ট নির্বাচন করুন (বার্চার, মাইডেট, 101) তারিখগুলি টেবিল থেকে
|--Compute Scalar(DEFINE:([Expr1004]=CONVERT(varchar(30),[TEST].[dbo].[DatesTable].[MyDate],101)))
|--Table Scan(OBJECT:([TEST].[dbo].[DatesTable]))
তারিখ টেবিলের থেকে তারিখটি (ডিডি, 0, ডেটেডিএফ (ডিডি, 0, মাইডিট)) নির্বাচন করুন
|--Compute Scalar(DEFINE:([Expr1004]=dateadd(day,(0),CONVERT_IMPLICIT(datetime,datediff(day,'1900-01-01 00:00:00.000',CONVERT_IMPLICIT(datetime,[TEST].[dbo].[DatesTable].[MyDate],0)),0))))
|--Table Scan(OBJECT:([TEST].[dbo].[DatesTable]))
@ ডিজি প্রস্তাবিত হিসাবে ফ্লোর () ব্যবহার করে ডেটডিফের কাছাকাছি পারফরম্যান্স রয়েছে তবে ডেটটাইম ডেটা টাইপটি ভাসা এবং পিছনে কাস্ট করার পরামর্শ দেওয়া হয় না কারণ সর্বদা আসল মান দেয় না।
ছেলেদের মনে রাখবেন: কাউকে বিশ্বাস করবেন না। পারফরম্যান্সের পরিসংখ্যানগুলি দেখুন এবং এটি নিজেই পরীক্ষা করুন!
আপনি যখন নিজের ফলাফলগুলি পরীক্ষা করছেন তখন সাবধান হন। ক্লায়েন্টে অনেকগুলি সারি নির্বাচন করা পারফরম্যান্সের পার্থক্যটি আড়াল করে রাখবে কারণ গণনা সম্পাদন করার চেয়ে নেটওয়ার্কের মধ্যে সারিগুলি প্রেরণে বেশি সময় লাগে। সুতরাং নিশ্চিত হয়ে নিন যে সমস্ত সারিগুলির জন্য কাজটি সার্ভার দ্বারা সম্পন্ন হয়েছে তবে ক্লায়েন্টের কাছে কোনও রোসেট পাঠানো হয়নি।
ক্যাশে অপ্টিমাইজেশন কোয়েরিগুলি কখন প্রভাবিত করে সে সম্পর্কে কিছু লোকের মধ্যে বিভ্রান্তি দেখা দেয়। একই ব্যাচে বা পৃথক ব্যাচে দুটি ক্যুরি চালানো ক্যাশেগুলিতে কোনও প্রভাব ফেলেনি। সুতরাং আপনি নিজেই ক্যাশে মেয়াদোত্তীর্ণ হয়ে যেতে পারেন বা একাধিকবার প্রশ্নগুলি পিছনে পিছনে চালাতে পারেন। ক্যোয়ারী # 2 এর জন্য যে কোনও অপ্টিমাইজেশন পরবর্তী যেকোন প্রশ্নের উপরও প্রভাব ফেলবে, তাই আপনি চাইলে মৃত্যুদন্ড কার্যকর করতে পারেন # 1।
এখানে পূর্ণ পরীক্ষার স্ক্রিপ্ট এবং পারফরম্যান্স ফলাফল যা প্রমাণ করে যে ডেটডিফ ভার্চারে রূপান্তর করার চেয়ে যথেষ্ট দ্রুত is
এটা চেষ্টা কর:
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
উপরের বিবৃতিটি আপনার বর্তমান ফর্ম্যাটকে রূপান্তর YYYY/MM/DD
করে, আপনার পছন্দসই বিন্যাসটি চয়ন করতে দয়া করে এই লিঙ্কটি দেখুন ।
mm/dd/yyyy
ফর্ম্যাট।
তারিখ বিন্যাসে ফেরতের জন্য
কাস্ট (আদেশের তারিখ AS তারিখ)
উপরের কোডটি বেকার সার্ভার 2010 এ কাজ করবে
এটি 12/12/2013 এর মতো ফিরে আসবে
এসকিউএল সার্ভারের জন্য 2012 নীচের কোডটি ব্যবহার করুন
CONVERT(VARCHAR(10), OrderDate , 111)
আপনি CONVERT
কেবল তারিখটি ফিরতে ফাংশনটি ব্যবহার করতে পারেন । নীচের লিঙ্কটি দেখুন:
এসকিউএল সার্ভার 2000 এ তারিখ এবং সময় ম্যানিপুলেশন
রূপান্তর ফাংশনটি ব্যবহারের জন্য সিনট্যাক্সটি হ'ল:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
আপনার যেমন হিসাবে ফলাফল প্রয়োজন varchar
, আপনার উচিত
SELECT CONVERT(DATE, GETDATE()) --2014-03-26
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) --2014/03/26
যা ইতিমধ্যে উপরে উল্লিখিত হয়েছে।
আপনার যদি তারিখ এবং সময় বিন্যাসে ফলাফলের প্রয়োজন হয় তবে আপনার নীচের যে কোনও প্রশ্নের ব্যবহার করা উচিত
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 111)) AS OnlyDate
2014-03-26 00: 00: 00.000
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 112)) AS OnlyDate
2014-03-26 00: 00: 00.000
DECLARE @OnlyDate DATETIME
SET @OnlyDate = DATEDIFF(DD, 0, GETDATE())
SELECT @OnlyDate AS OnlyDate
2014-03-26 00: 00: 00.000
Format()
ফাংশন ব্যবহার করুন ।
এসকিউএল সার্ভারের জন্য ইতিমধ্যে একাধিক উত্তর এবং বিন্যাসের ধরণ রয়েছে। তবে বেশিরভাগ পদ্ধতি কিছুটা অস্পষ্ট এবং নির্দিষ্ট তারিখের ফর্ম্যাট সম্পর্কিত ফর্ম্যাট টাইপ বা ফাংশনের জন্য সংখ্যাগুলি মনে রাখা আপনার পক্ষে কঠিন be এজন্য এসকিউএল সার্ভারের পরবর্তী সংস্করণগুলিতে আরও ভাল বিকল্প রয়েছে।
FORMAT ( value, format [, culture ] )
সংস্কৃতি বিকল্পটি খুব কার্যকর, কারণ আপনি আপনার দর্শকদের অনুযায়ী তারিখ নির্দিষ্ট করতে পারেন।
আপনাকে ডি (ছোট নিদর্শনগুলির জন্য) এবং ডি (দীর্ঘ নিদর্শনগুলির জন্য) মনে রাখতে হবে।
2009-06-15T13:45:30 -> 6/15/2009 (en-US)
2009-06-15T13:45:30 -> 15/06/2009 (fr-FR)
2009-06-15T13:45:30 -> 2009/06/15 (ja-JP)
2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)
2009-06-15T13:45:30 -> 15 июня 2009 г. (ru-RU)
2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)
প্রশ্নের আরও উদাহরণ।
DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result
---------------- ----------------------------- ------------- -------------------------------------
10/1/2011 01/10/2011 01.10.2011 2011/10/1
US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result
---------------------------- ----------------------------- ----------------------------- ---------------------------------------
Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日
আপনি যদি আরও ফর্ম্যাট চান তবে আপনি এখানে যেতে পারেন:
যদি আপনি কনভার্টটি ব্যবহার করতে চান এবং উত্থাপিত মূল প্রশ্নের মতো একই আউটপুট পেতে চান, তা হল, ইয়াই-মিমি-ডিডি তারপর CONVERT(varchar(10),[SourceDate as dateTime],121)
পূর্ববর্তী দম্পতির উত্তরগুলির মতো একই কোড ব্যবহার করুন , তবে ড্যাশগুলির সাথে yyyy-mm-dd তে রূপান্তর করতে কোডটি হ'ল 121।
আমি যদি এক সেকেন্ডের জন্য আমার সোপবক্সে উঠতে পারি তবে এই ধরণের ফরম্যাটিংটি ডেটা স্তরের অন্তর্ভুক্ত নয় এবং সে কারণেই এসকিউএল সার্ভার ২০০ 2008 সাল পর্যন্ত সিলি হাই-ওভারহেড 'ট্রিকস' ছাড়া এটি সম্ভব হয়নি যখন আসল ডেট পার্টের ডেটা টাইপ থাকে পরিচয় করিয়ে দেন। ডেটা স্তরে এ জাতীয় রূপান্তরগুলি করা আপনার ডিবিএমএসের উপরে ওভারহেডের একটি বিশাল অপচয়, তবে আরও গুরুত্বপূর্ণ, দ্বিতীয়টি আপনি এর মতো কিছু করেন, আপনি মূলত ইন-মেমরি অনাথ ডেটা তৈরি করেছেন যা আমি ধরে নিয়েছি আপনি পরে কোনও প্রোগ্রামে ফিরে আসবেন। আপনি এটিকে আর কোনও 3NF + কলামে রাখতে পারবেন না বা এটিকে টাইপ করা যেকোন কিছুকে আবার না ঘুরিয়ে তুলনা করতে পারেন, সুতরাং আপনারা সমস্ত কিছুই ব্যর্থতার পয়েন্ট এবং প্রাসঙ্গিক রেফারেন্সটি সরিয়ে নিয়েছেন।
আপনার সবসময় এগিয়ে যাওয়া উচিত এবং কলিং প্রোগ্রামে এবং তারিখের সময়কালে আপনার তারিখের টাইম ডেটা টাইপ ফিরিয়ে দেওয়া উচিত , যা কিছু সামঞ্জস্য প্রয়োজন তা করা উচিত। কলারের কাছে ফিরিয়ে দেওয়ার আগে আপনি জিনিসগুলিকে রূপান্তর করতে যাওয়ার সাথে সাথে আপনি অ্যাপ্লিকেশন থেকে রেফারেন্সিয়াল অখণ্ডতার সমস্ত আশা সরিয়ে ফেলছেন। এটি কোনও আপডেট বা ডিলিট অপারেশনটিকে আবার আটকাতে পারে, যদি না আপনি যদি কোনও ধরণের ম্যানুয়াল বিপর্যয় না করেন যা কোনও প্রয়োজন নেই তখন আবার আপনার ডেটা হিউম্যান / কোড / গ্রিমলিন ত্রুটিতে প্রকাশ করবে।
WHERE col >= @Date AND col < DATEADD(DAY, 1, @Date);
- কলামটি থেকে সময় ছিনিয়ে নেওয়ার কোনও কারণ নেই।
@Date
শূন্য সময় অনুমান করে তা কাজ করে । যদি এটি সত্য না হয় তবে আপনাকে এখনও সার্ভার-সাইডের বার কীভাবে কেটে ফেলতে হবে তা জানতে হবে। আমি এই উত্তরের সাথে একমত যে ফর্ম্যাটিংটি উপস্থাপনা স্তরটিতে ছেড়ে দেওয়া উচিত, তবে আমি এই ইঙ্গিতটির সাথে একমত হইনি যে সামনের প্রান্তে রেখে যাওয়ার অর্থ আপনাকে কাটানোর দ্রুত উপায় জানতে হবে না।
SELECT DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0)
SELECT DATEADD(DAY, 0, DATEDIFF(DAY,0, GETDATE()))
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101))
সম্পাদনা করুন: প্রথম দুটি পদ্ধতি মূলত একইরকম এবং বারচার পদ্ধতিতে রূপান্তর সম্পাদন করে।
select dateadd(dd, datediff(dd, 0, getdate()), 0)
, কারণ dd
গুলি তারপর কোন আউট অদলবদল করা যাবে কীওয়ার্ড কোনো সেগমেন্ট আপনি নির্বাচন তারিখ ক্লিপ করতে। (এছাড়াও এটি কেবল একটি সংক্ষেপণ হিসাবে লক্ষ্য করুন ))datepart
dd
day
নির্দেশিত ফলাফলটি পেতে, আমি নিম্নলিখিত কমান্ডটি ব্যবহার করি।
SELECT CONVERT(DATETIME,CONVERT(DATE,GETDATE()))
আমি এটি দরকারী।
Convert(nvarchar(10), getdate(), 101) ---> 5/12/14
Convert(nvarchar(12), getdate(), 101) ---> 5/12/2014
আপনি যদি কোনও কলাম বা ভেরিয়েবলের ফলাফলগুলি অর্পণ করে থাকেন তবে এটির তারিখ টাইপ দিন এবং রূপান্তর অন্তর্ভুক্ত।
DECLARE @Date DATE = GETDATE()
SELECT @Date --> 2017-05-03
আমি মনে করি এটি আপনার ক্ষেত্রে কাজ করবে:
CONVERT(VARCHAR(10),Person.DateOfBirth,111) AS BirthDate
//here date is obtained as 1990/09/25
DECLARE @yourdate DATETIME = '11/1/2014 12:25pm'
SELECT CONVERT(DATE, @yourdate)
ঠিক আছে, যদিও আমি কিছুটা দেরি করেছি :), এখানে অন্য একটি সমাধান রয়েছে।
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) as DATETIME)
ফলাফল
2008-09-22 00:00:00.000
এবং আপনি যদি এসকিউএল সার্ভার 2012 এবং এর বেশি ব্যবহার করেন তবে আপনি FORMAT()
এই জাতীয় ফাংশনটি ব্যবহার করতে পারেন -
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')
এমনকি প্রাচীন এমএসএসকিউএল সার্ভার .0.০ ব্যবহার করেও, এখানে কোড (এই লিঙ্কটির সৌজন্যে ) আমাকে সেই সময়ে যে তারিখের ফর্ম্যাটটি খুঁজছিলাম তা পেতে অনুমতি দিয়েছে:
PRINT '1) Date/time in format MON DD YYYY HH:MI AM (OR PM): ' + CONVERT(CHAR(19),GETDATE())
PRINT '2) Date/time in format MM-DD-YY: ' + CONVERT(CHAR(8),GETDATE(),10)
PRINT '3) Date/time in format MM-DD-YYYY: ' + CONVERT(CHAR(10),GETDATE(),110)
PRINT '4) Date/time in format DD MON YYYY: ' + CONVERT(CHAR(11),GETDATE(),106)
PRINT '5) Date/time in format DD MON YY: ' + CONVERT(CHAR(9),GETDATE(),6)
PRINT '6) Date/time in format DD MON YYYY HH:MM:SS:MMM(24H): ' + CONVERT(CHAR(24),GETDATE(),113)
এটি এই আউটপুট উত্পাদন করেছে:
1) Date/time in format MON DD YYYY HH:MI AM (OR PM): Feb 27 2015 1:14PM
2) Date/time in format MM-DD-YY: 02-27-15
3) Date/time in format MM-DD-YYYY: 02-27-2015
4) Date/time in format DD MON YYYY: 27 Feb 2015
5) Date/time in format DD MON YY: 27 Feb 15
6) Date/time in format DD MON YYYY HH:MM:SS:MMM(24H): 27 Feb 2015 13:14:46:630
তারিখ:
কনভার্ট নির্বাচন করুন (তারিখ, GETDATE ()) কাস্ট কাস্ট (তারিখ হিসাবে)
সময়:
কনভার্ট নির্বাচন করুন (সময়, GETDATE (), ১১৪) কাস্ট কাস্ট (সময় হিসাবে GETDATE ())
সহজভাবে আপনি এইভাবে করতে পারেন:
SELECT CONVERT(date, getdate())
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
ফলাফলগুলি:
2008-09-22 00:00:00.000
বা কেবল এটির মতো করুন:
SELECT CONVERT (DATE, GETDATE()) 'Date Part Only'
ফলাফল:
Date Part Only
--------------
2013-07-14
আপনি কেন DATE_FORMAT (আপনার_সামগ্রী_কলাম, '% d-% m-% Y') ব্যবহার করবেন না?
গো EX: select DATE_FORMAT( some_datetime_column, '%d-%m-%Y' ) from table_name
আপনি '%d-%m-%Y'
অংশ পুনরায় সাজিয়ে এম, ডি এবং বছরের ক্রম পরিবর্তন করতে পারেন
আমি জানি এটি পুরানো, তবে আমি কোথায় দেখছি না যে এইভাবে কেউ এটি বর্ণনা করেছিল stated আমি যা বলতে পারি তা থেকে এটি এএনএসআই মান।
SELECT CAST(CURRENT_TIMESTAMP AS DATE)
মাইক্রোসফ্ট যদি এএনএসআই স্ট্যান্ডার্ড CURRENT_DATE ভেরিয়েবলকে সমর্থন করতে পারে তবে ভাল হবে।
select {fn current_date()} as today
আমার জন্য কাজ কর.
আমি নিম্নোক্ত বিষয়গুলির পক্ষে, যা উল্লেখ করা হয়নি:
DATEFROMPARTS(DATEPART(yyyy, @mydatetime), DATEPART(mm, @mydatetime), DATEPART(dd, @mydatetime))
এটি স্থানীয় সম্পর্কেও চিন্তা করে না বা ডাবল রূপান্তরও করে না - যদিও প্রতিটি 'ডেট পার্ট' সম্ভবত গণিত করে। সুতরাং এটি ডেটেডিফ পদ্ধতির চেয়ে কিছুটা ধীর হতে পারে তবে আমার কাছে এটি আরও পরিষ্কার। বিশেষত যখন আমি কেবল বছর এবং মাসের মধ্যে গ্রুপ করতে চাই (দিনটি 1 সেট করুন)।
এই ক্ষেত্রে, কেবলমাত্র তারিখ, আপনি এই কোয়েরিটি চালাবেন:
আপনি তারিখের অংশ এবং তারিখের ফর্ম্যাট করার জন্য নিম্নলিখিত ব্যবহার করতে পারেন:
DATENAME => এমন একটি অক্ষরের স্ট্রিং প্রত্যাবর্তন করে যা নির্দিষ্ট তারিখের নির্দিষ্ট তারিখের অংশকে উপস্থাপন করে
তারিখ => DATEPART()
ফাংশনটি কোনও তারিখ / সময়ের একক অংশ, যেমন বছর, মাস, দিন, ঘন্টা, মিনিট ইত্যাদি ফেরত দিতে ব্যবহৃত হয়
তারিখ পার্ট => একটি পূর্ণসংখ্যা প্রদান করে যা নির্দিষ্ট তারিখের নির্দিষ্ট তারিখের অংশকে উপস্থাপন করে।
CONVERT()
=> CONVERT()
ফাংশনটি একটি সাধারণ ফাংশন যা এক ডেটা টাইপের এক্সপ্রেশনকে অন্যটিতে রূপান্তর করে।
CONVERT()
ফাংশন বিভিন্ন বিন্যাসে তারিখ / সময় তথ্য প্রদর্শন ব্যবহার করা যাবে।