উত্তর:
আজ কোন সময় পান:
SELECT dateadd(day,datediff(day,0,GETDATE()),0)
হ্যাঁ, আজকাল দিন নেই:
SELECT dateadd(day,datediff(day,1,GETDATE()),0)
কেবলমাত্র গতকাল থেকে সমস্ত সারিটির জন্য ক্যোয়ারী:
select
*
from yourTable
WHERE YourDate >= dateadd(day,datediff(day,1,GETDATE()),0)
AND YourDate < dateadd(day,datediff(day,0,GETDATE()),0)
SELECT getdate(),dateadd(day,datediff(day,1,GETDATE()),0)
আমি পাই:2016-02-01 10:27:54.733 2016-01-31 00:00:00.000
এসকিউএলে "আজ" মান পেতে:
convert(date, GETDATE())
"গতকাল" পেতে:
DATEADD(day, -1, convert(date, GETDATE()))
"আজ মাইনাস এক্স দিনগুলি" পেতে: -1--এ পরিবর্তন করুন।
সুতরাং সমস্ত গতকালের সারিগুলির জন্য, আপনি পাবেন:
select * from tablename
where date >= DATEADD(day, -1, convert(date, GETDATE()))
and date < convert(date, GETDATE())
দেখে মনে হচ্ছে সুস্পষ্ট উত্তরটি অনুপস্থিত ছিল। একটি সারণী (টিটবেল) থেকে সমস্ত ডেটা পেতে যেখানে কলামটি (ডেটটাইম কলাম) একটি টাইমস্ট্যাম্প সহ একটি ডেটটাইম যেখানে নিম্নলিখিত কোয়েরিটি ব্যবহার করা যেতে পারে:
SELECT * FROM Ttable
WHERE DATEDIFF(day,Ttable.DatetimeColumn ,GETDATE()) = 1 -- yesterday
এটি সহজেই আজ, গত মাসে, গত বছর, ইত্যাদিতে পরিবর্তন করা যেতে পারে
DatetimeColumn BETWEEN DATEADD(day, DATEDIFF(day, 1, GETDATE()) ,0) AND DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
এটি প্রতিটি সারিতে DATEDIFF () মূল্যায়ন করতে হয় বলে তুলনায় অনেক বেশি ব্যয়বহুল
SELECT * from table_name where date_field = DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY);
এটি সত্যিই একটি পুরানো থ্রেড, তবে এটি এখানে আমার গ্রহণযোগ্য। 2 টি পৃথক ধারাগুলির চেয়ে একটি এর চেয়ে বড় এবং কম less আমি এ তারিখ থেকে রেকর্ড নির্বাচন করার জন্য নীচের সিনট্যাক্সটি ব্যবহার করি। আপনি যদি কোনও তারিখের সীমা চান তবে পূর্ববর্তী উত্তরগুলি হ'ল উপায়।
SELECT * FROM TABLE_NAME WHERE
DATEDIFF(DAY, DATEADD(DAY, X , CURRENT_TIMESTAMP), <column_name>) = 0
উপরের ক্ষেত্রে এক্স গতকাল রেকর্ডের জন্য -1 হবে
এটি করা উচিত:
WHERE `date` = CURDATE() - INTERVAL 1 DAY
এসকিউএল সার্ভারে এটি করুন:
where cast(columnName as date) = cast(getdate() -1 as date)
সময় বিন্যাসের সমস্যাগুলি এড়াতে আপনার অভিব্যক্তিটির উভয় পক্ষের আজকের তারিখটি কাস্ট করা উচিত।
আপনার যদি আরও বিশদে ব্যবধান নিয়ন্ত্রণ করতে হয় তবে আপনার এমন কিছু চেষ্টা করা উচিত:
declare @start datetime = cast(getdate() - 1 as date)
declare @end datetime = cast(getdate() - 1 as date)
set @end = dateadd(second, 86399, @end)
এটি "গতকাল" বলার আর একটি উপায় ...
Select * from TABLE
where Day(DateField) = (Day(GetDate())-1)
and Month(DateField) = (Month(GetDate()))
and Year(DateField) = (Year(getdate()))
এই ধারণাটি 1 জানুয়ারী, পাশাপাশি প্রতি মাসের প্রথম দিনেই ভাল কাজ করবে না। তবে উড়ে যাওয়ার ক্ষেত্রে এটি কার্যকর।
ঠিক আছে, তারিখের তারিখের সময় কলামটি কাস্ট করা সহজ এবং তুলনা করার চেয়েও সহজ।
SELECT * FROM TABLE_NAME WHERE cast(COLUMN_NAME as date) =
dateadd(day,0, convert(date, getdate(), 105))
SELECT *
তাদের আসল সময়গুলির সাথে কোনও তারিখ ফেরত দেবে।