এসকিউএলে ডেটটাইম ফর্ম্যাট থেকে সময় পাবেন কীভাবে?


180

আমি এসকিউএল সার্ভার 2005 এবং 2008 ডিফল্ট আউটপুট ব্যবহার করে এসকিউএল কোয়েরি ব্যবহার করে ডেটটাইম কলাম থেকে কেবলমাত্র সময় পেতে চাই:

AttDate                   
==
2011-02-09 13:09:00    
2011-02-09 14:10:00    

আমি এই আউটপুট চাই:

AttDate                Time 
==
2011-02-09 13:09:00    13:09
2011-02-09 14:10:00    14:10

স্কুয়েলে to_char পদ্ধতি অনুসন্ধান করুন। আপনি ফর্ম্যাটটি নির্দিষ্ট করতে এবং পছন্দসই আউটপুট পেতে পারেন
নবীন বাবু

1
রূপান্তর নির্বাচন করুন (বর্ণা (10), getdate (), 108)
রাহুলারায়ণশর্মা

এটি SELECT CONVERT(VARCHAR(8),GETDATE(),108)
স্কয়ার

উত্তর:


340

এসকিউএল সার্ভার ২০০৮:

SELECT cast(AttDate as time) [time]
FROM yourtable

পূর্ববর্তী সংস্করণ:

SELECT convert(char(5), AttDate, 108) [time]
FROM yourtable

34

এসকিএল সার্ভার ধরে নিচ্ছি

SELECT CONVERT(VARCHAR(8),GETDATE(),108)


এটি কেবল গেটেটে () কাজ করে যেখানে আমি যখন সিলেক্ট রূপান্তর (বারচর (8), '2011-02-09 13: 09: 00', 108) পাস করি তখন তারিখ থেকে এটি প্রথম 8 টি অক্ষর তৈরি করছে thisএটি ঠিক করার জন্য কীভাবে ?
অপর্ণা

24

এসকিউএল সার্ভার ২০০++ এর একটি "সময়" ডেটাটাইপ রয়েছে

SELECT 
    ..., CAST(MyDateTimeCol AS time)
FROM
   ...

পুরানো সংস্করণগুলির জন্য, ভারচর রূপান্তর ছাড়াই

SELECT 
    ..., DATEADD(dd, DATEDIFF(dd, MyDateTimeCol, 0), MyDateTimeCol)
FROM
   ...

আওয়ারমিনিটসেকেন্ড, কনভার্ট (ভ্যাচারার (8), গেট আপডেট (), 101) আপনি কেন এই নির্বাচনী কনভার্ট (ভর্চার (8), গেট আপডেট (), 108) ব্যবহার করবেন না কেন কেবল কোনও পারফরম্যান্স সমস্যা আছে?
রাহুলারায়ণশর্মা

2
@ রহুলারায়ণশর্মা: প্রয়োজন হলে তারিখগুলির জন্য আমি বার্চর রূপান্তর ব্যবহার করি না
gbn

স্যার আমি জানতে চাই যে আপনার সমাধানের পরিবর্তে আমরা যদি এটি ব্যবহার করি তবে কোনও কার্যকারিতা হ্রাস পাবে?
রাহুলারায়ণশর্মা

1
@rahularyansharma: যদি আপনি এই উপর ভিত্তি করে নিজেকে পরীক্ষা করতে পারেন stackoverflow.com/questions/133081/...
gbn

1
যার অনুসরণ না করে 0তার পক্ষে ন্যূনতম তারিখ উপস্থাপন করা হয় 1900-01-01। সুতরাং এটি কলাম মান এবং 0 এর মধ্যে দিনের সংখ্যা (নেতিবাচক) পায়, তারপরে সেই negativeণাত্মক দিনগুলিকে কলাম মানটিতে যুক্ত করে যা তারিখের অংশটি "জিরো আউট" করে 1900-01-01এবং আপনার হাতে সময় থাকে মাত্র।
xr280xr

13

মিলিসেকেন্ড স্ট্যাক ছাড়াই ডেটটাইম থেকে সময় পাওয়ার সহজ উপায় হ'ল:

SELECT convert(time(0),getDate())

10

এটি ব্যবহার করার চেষ্টা করুন

  • তারিখ থেকে সময়

    select cast(getdate() as time(0))
  • টিনিটাইম সময়

    select cast(orig_time as time(0))




3
select cast (as time(0))

একটি ভাল ধারা হবে। উদাহরণ স্বরূপ:

(select cast(start_date as time(0))) AS 'START TIME'


2

ডেটটাইম থেকে সময় পেতে, আমরা ব্যবহার করতে পারি

SELECT CONVERT(VARCHAR(20), GETDATE(), 114)

2

আপনি যদি এই স্টাইলে তারিখটি চান: অক্টোবর 23 2013 10:30 পূর্বাহ্ন

এটা ব্যবহার কর

SELECT CONVERT(NVARCHAR(30),getdate(), 100)

convert() পদ্ধতিতে 3 পরামিতি লাগে

  1. ডাটাটাইপ
  2. কলাম / মূল্য
  3. স্টাইল: উপলভ্য স্টাইলগুলি 100 থেকে 114 এর মধ্যে You তারিখের ফর্ম্যাট পরিবর্তন করতে একে একে বেছে নিন।



1

এমএসএসকিউএল ২০১২ বা তারপরে

cast(dateadd(ms,datediff(ms, [StartDateTime], [StopDateTime]),0) as Time(0))

... অথবা ...

convert(time(0),dateadd(ms,datediff(ms, [StartDateTime], [StopDateTime]),0) )

1

এসকিউএল সার্ভার ২০১২:

Select TRY_CONVERT(TIME, myDateTimeColumn) from myTable;

ব্যক্তিগতভাবে, আমি কনভার্ট () এর চেয়ে TRY_CONVERT () পছন্দ করি। মূল পার্থক্য: castালাই ব্যর্থ হলে, TRY_CONVERT () NULL প্রদান করে যখন কনভার্ট () ত্রুটি উত্থাপন করে।


-1

select substr(to_char(colUmn_name, 'DD/MM/RRRR HH:MM:SS'),11,19) from table_name;

আউটপুট: থেকে

05:11:26
05:11:24
05:11:24

কাজ করে না ত্রুটি দেয়'to_char' is not a recognized built-in function name.
ক্যাপ্টেনসাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.