declare @dt datetime
set @dt = '09-22-2007 15:07:38.850'
select dateadd(mi, datediff(mi, 0, @dt), 0)
select dateadd(hour, datediff(hour, 0, @dt), 0)
ফিরে আসবে
2007-09-22 15:07:00.000
2007-09-22 15:00:00.000
উপরেরটি সেকেন্ড এবং মিনিটগুলি ছাঁটাই করে, প্রশ্নের জন্য জিজ্ঞাসিত ফলাফলগুলি তৈরি করে। @ ওএমজি পনিগুলি যেমন উল্লেখ করেছে, আপনি যদি উপরে / নিচে চড়াতে চান তবে আপনি যথাক্রমে আধ মিনিট বা আধা ঘন্টা যোগ করতে পারেন, তারপরে কাটা:
select dateadd(mi, datediff(mi, 0, dateadd(s, 30, @dt)), 0)
select dateadd(hour, datediff(hour, 0, dateadd(mi, 30, @dt)), 0)
এবং আপনি পাবেন:
2007-09-22 15:08:00.000
2007-09-22 15:00:00.000
এসকিউএল সার্ভার ২০০৮- এ তারিখের ডেটা টাইপ যুক্ত হওয়ার আগে , আমি কেবলমাত্র তারিখ পাওয়ার জন্য উপরের পদ্ধতিটি তারিখের সময় থেকে সময় অংশ কেটে ফেলতাম would ধারণাটি হ'ল প্রশ্নের মধ্যে থাকা তারিখের সময় এবং সময়ের মধ্যে একটি নির্দিষ্ট পয়েন্টের মধ্যে দিনগুলি নির্ধারণ করা ( 0
যা স্পষ্টতই কাস্ট করে 1900-01-01 00:00:00.000
):
declare @days int
set @days = datediff(day, 0, @dt)
এবং তারপরে নির্দিষ্ট স্থানে সেই সংখ্যক দিন যুক্ত করুন, যা আপনাকে নির্ধারিত সময়ের সাথে আসল তারিখ দেয় 00:00:00.000
:
select dateadd(day, @days, 0)
বা আরও সংক্ষেপে:
select dateadd(day, datediff(day, 0, @dt), 0)
একটি আলাদা ডেট পার্ট (যেমন hour
, mi
) ব্যবহার করে সেই অনুযায়ী কাজ করবে।