SQL में DateTime प्रारूप से समय कैसे प्राप्त करें?


182

मैं SQL Server 2005 और 2008 डिफ़ॉल्ट आउटपुट का उपयोग करते हुए SQL क्वेरी का उपयोग करते हुए केवल डेटटाइम कॉलम से समय प्राप्त करना चाहता हूं:

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

sql में to_char विधि की खोज करें। आप प्रारूप को निर्दिष्ट कर सकते हैं और वांछित आउटपुट प्राप्त कर सकते हैं
नवीन बाबू

1
सेलेक्ट कन्वर्ट (varchar (10), getdate (), 108)
rahularyansharma

यह SELECT CONVERT(VARCHAR(8),GETDATE(),108)sql सर्वर के लिए हो सकता है
V4Vendetta

जवाबों:


342

SQL सर्वर 2008:

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

पिछले संस्करण:

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

34

Sql सर्वर मानकर

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


यह केवल getdate () पर काम करता है, जब मैं चुनिंदा रूपांतरित (varchar (8), '2011-02-09 13: 09: 00', 108) करता हूं, तो इसे ठीक करने के लिए यह तिथि से पहले 8 वर्णों का निर्माण कर रहा है। ?
अपर्णा

24

SQL सर्वर 2008+ में एक "समय" डेटाटाइप है

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

पुराने संस्करणों के लिए, बिना varchar रूपांतरण के

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

आप इस SELECT CONVERT (VARCHAR (8), GETDATE (), 108) के रूप में HourMinuteSecond, CONVERT (VARCHAR (8), GETDATE (), 101 का उपयोग नहीं कर सकते। डेटऑनली के बाद कोई प्रदर्शन मुद्दा है?
rahularyansharma

2
@ वरुलार्यशर्मा: यदि आवश्यक हो तो मैं तारीखों के लिए चर रूपांतरण का उपयोग नहीं करता हूं
gbn

महोदय, मैं जानना चाहता हूं कि क्या आपके समाधान के बजाय इसका उपयोग करने में कोई कमी है?
rahularyansharma

1
@rahularyansharma: यदि आप इस आधार पर अपने आप को परीक्षण कर सकते हैं stackoverflow.com/questions/133081/...
GBN

1
किसी का अनुसरण नहीं करने के लिए, 0न्यूनतम तिथि का प्रतिनिधित्व करता है 1900-01-01। तो यह स्तंभ मान और 0 के बीच दिनों की (नकारात्मक) संख्या प्राप्त करता है, फिर उन नकारात्मक दिनों को स्तंभ मान में जोड़ देता है, जो दिनांक भाग को "शून्य" करते हैं 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'

3

मैं अक्सर डेटटाइम से समय पाने के लिए इस स्क्रिप्ट का उपयोग करता हूं:

SELECT CONVERT(VARCHAR(9),RIGHT(YOURCOLUMN_DATETIME,9),108) FROM YOURTABLE

मैं समय के सामने 9 क्यों आता हूँ .. परिणाम: 9 11:21 PM
सैयद मुहम्मद ने

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 तक हैं। आप सीमा से चुन सकते हैं। दिनांक प्रारूप को बदलने के लिए एक-एक करके चुनें।

2

सर्वर की तारीख प्राप्त करें

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7)) FROM TABLENAME WHERE ...

या

यदि यह तालिका में संग्रहीत है

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), datename, 100), 7)) FROM TABLENAME WHERE ...

परिणाम:

11:41 पूर्वाह्न



1

MSSQL2012 या इसके बाद के संस्करण पर

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

... या ...

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

1

SQL सर्वर 2012:

Select TRY_CONVERT(TIME, myDateTimeColumn) from myTable;

व्यक्तिगत रूप से, मैं TRY_CONVERT () से CONVERT () को प्राथमिकता देता हूं। मुख्य अंतर: यदि कास्ट विफल हो जाता है, तो TRY_CONVERT () CONVERT () में त्रुटि होने पर रिटर्न देता है।


-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.
कप्तान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.