दिलचस्प पोस्ट
स्क्रॉलिंग के बाद तत्व दिखाई देने पर देखें मैं स्थानीय रूप से कुछ फाइलों को अनदेखा करने के लिए कैसे git कॉन्फ़िगर करूं? .NET अंतर-प्रक्रिया संचार के लिए सबसे अच्छा विकल्प क्या है? जावास्क्रिप्ट में एक regex match () की स्थिति वापस आती है? क्या MySQL में फ़ंक्शन-आधारित इंडेक्स होना संभव है? एक संवाद के रूप में एंड्रॉइड गतिविधि Django वर्ग-आधारित दृश्य: मैं as_view विधि में अतिरिक्त पैरामीटर कैसे पारित करूं? "HttpContext.Current" संपत्ति और संबंधित चीजों का क्रॉस-थ्रेड उपयोग React.js पर आईएमजी के लिए सही पथ जावा में जेपैनेल पैडिंग क्या स्थानीय चर की स्मृति को इसके दायरे के बाहर पहुंचाया जा सकता है? रीटरफिट लाइब्रेरी में टाइमआउट कैसे सेट करें? सीएसएस द्वारा छवि स्केलिंग: क्या -कोई-कुरकुरा-किनारों के लिए एक वेबकिट विकल्प है? आंतरिक त्रुटि 500 ​​अपाचे, लेकिन लॉग में कुछ नहीं? फ्लेक्स संपत्ति IE में काम नहीं कर रहा है

दूसरे फ़ील्ड से समय के साथ एक फ़ील्ड से तारीख को गठबंधन कैसे करें – एमएस SQL ​​सर्वर

मैं एक एक्स्ट्रैक्ट के साथ काम कर रहा हूं, मेरे पास 2 datetime कॉलम हैं I एक कॉलम में दिनांक और दूसरी बार दिखाया गया है।

मैं इन दो क्षेत्रों को 1 प्रकार की कॉलम में datetime करने के लिए तालिका को कैसे पूछ सकता हूं?

खजूर

 2009-03-12 00:00:00.000 2009-03-26 00:00:00.000 2009-03-26 00:00:00.000 

टाइम्स

 1899-12-30 12:30:00.000 1899-12-30 10:00:00.000 1899-12-30 10:00:00.000 

Solutions Collecting From Web of "दूसरे फ़ील्ड से समय के साथ एक फ़ील्ड से तारीख को गठबंधन कैसे करें – एमएस SQL ​​सर्वर"

आप बस दो जोड़ सकते हैं

  • अगर आपकी Date कॉलम का Time part हमेशा शून्य होता है
  • और आपके Time कॉलम का Date part हमेशा शून्य होता है (आधार तिथि: 1 जनवरी, 1 9 00)

उन्हें जोड़ना सही परिणाम देता है

 SELECT Combined = MyDate + MyTime FROM MyTable 

तर्क (एरीके / डोनोलन की इच्छा)

 It works like this due to the way the date is stored as two 4-byte `Integers` with the left 4-bytes being the `date` and the right 4-bytes being the `time`. Its like doing $0001 0000 + $0000 0001 = $0001 0001 

नए SQL सर्वर 2008 प्रकारों के बारे में संपादित करें

Date और Time SQL Server 2008 में पेश किए गए प्रकार हैं यदि आप जोड़ने पर जोर देते हैं, तो आप Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) उपयोग कर सकते हैं

एसटीएमएल 2008 और अप में शुद्धता के नुकसान के बारे में संपादन 2 (मार्टिन स्मिथ को श्रेय)

कैसे SQL सर्वर में datetime2 को तारीख और समय को गठबंधन करने पर एक नज़र डालें ? एसक्यूएल सर्वर 2008 और ऊपर का इस्तेमाल सटीकता के नुकसान को रोकने के लिए

यदि आपके दिनांक कॉलम का समय तत्व और आपके समय कॉलम की दिनांक तत्व दोनों शून्य हैं, तो लिविएन का जवाब है कि आपको क्या चाहिए। यदि आप गारंटी नहीं दे सकते कि यह हमेशा मामला होगा तो यह थोड़ा अधिक जटिल हो जाएगा:

 SELECT DATEADD(day, 0, DATEDIFF(day, 0, your_date_column)) + DATEADD(day, 0 - DATEDIFF(day, 0, your_time_column), your_time_column) FROM your_table 

यह किसी भी चार रूपांतरण के बिना एक वैकल्पिक समाधान है:

 DATEADD(ms, DATEDIFF(ms, '00:00:00', [Time]), CONVERT(DATETIME, [Date])) 

आपको इस तरह मिलीसेकंड की सटीकता ही मिलेगी, लेकिन यह सामान्य रूप से ठीक हो जाएगी। मैंने इसे SQL सर्वर 2008 में परीक्षण किया है

यह मेरे लिए काम किया

 CAST(Tbl.date as DATETIME) + CAST(Tbl.TimeFrom AS TIME) 

(SQL 2008 R2 पर)

यदि आप SQL सर्वर 2008 का उपयोग नहीं कर रहे हैं (यानी आपके पास केवल दिनांकटाइम डेटा प्रकार है), तो आप जो चाहते हैं, उसे प्राप्त करने के लिए आप निम्न (मान्य रूप से मोटे और तैयार) टीएसक्यूएल का उपयोग कर सकते हैं:

 DECLARE @DateOnly AS datetime DECLARE @TimeOnly AS datetime SET @DateOnly = '07 aug 2009 00:00:00' SET @TimeOnly = '01 jan 1899 10:11:23' -- Gives Date Only. SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @DateOnly)) -- Gives Time Only. SELECT DATEADD(Day, -DATEDIFF(Day, 0, @TimeOnly), @TimeOnly) -- Concatenates Date and Time parts. SELECT CAST( DATEADD(dd, 0, DATEDIFF(dd, 0, @DateOnly)) + ' ' + DATEADD(Day, -DATEDIFF(Day, 0, @TimeOnly), @TimeOnly) as datetime) 

यह मोटा और तैयार है, लेकिन यह काम करता है!

  1. यदि आपके दोनों फ़ील्ड दिन-समय पर हैं तो बस उन लोगों को जोड़ना होगा।

    उदाहरण के लिए:

     Declare @d datetime, @t datetime set @d = '2009-03-12 00:00:00.000'; set @t = '1899-12-30 12:30:00.000'; select @d + @t 
  2. यदि आपने दिनांक और समय डेटाटाइप का उपयोग किया तो केवल समय-समय पर डाले

    उदाहरण के लिए:

     Declare @d date, @t time set @d = '2009-03-12'; set @t = '12:30:00.000'; select @d + cast(@t as datetime) 
 DECLARE @Dates table ([Date] datetime); DECLARE @Times table ([Time] datetime); INSERT INTO @Dates VALUES('2009-03-12 00:00:00.000'); INSERT INTO @Dates VALUES('2009-03-26 00:00:00.000'); INSERT INTO @Dates VALUES('2009-03-30 00:00:00.000'); INSERT INTO @Times VALUES('1899-12-30 12:30:00.000'); INSERT INTO @Times VALUES('1899-12-30 10:00:00.000'); INSERT INTO @Times VALUES('1899-12-30 10:00:00.000'); WITH Dates (ID, [Date]) AS ( SELECT ROW_NUMBER() OVER (ORDER BY [Date]), [Date] FROM @Dates ), Times (ID, [Time]) AS ( SELECT ROW_NUMBER() OVER (ORDER BY [Time]), [Time] FROM @Times ) SELECT Dates.[Date] + Times.[Time] FROM Dates JOIN Times ON Times.ID = Dates.ID 

प्रिंटों:

 2009-03-12 10:00:00.000 2009-03-26 10:00:00.000 2009-03-30 12:30:00.000 

किसी दिनांक समय फ़ील्ड में स्ट्रिंग में संग्रहीत पहली तारीख को कन्वर्ट करें, फिर एक datetime फ़ील्ड में स्ट्रिंग में संग्रहीत समय को कनवर्ट करें, दो जोड़ दें और ज्ञात कनवर्ज़न फ़ॉर्मेट का उपयोग करके एक डेटैन फ़ील्ड में वापस कन्वर्ट करें।

 Convert(datetime, Convert(char(10), MYDATETIMEFIELD, 103) + ' ' + Convert(char(8), MYTIMEFIELD, 108), 103) 

दोनों फ़ील्ड को DATETIME में कनवर्ट करें:

 SELECT CAST(@DateField as DATETIME) + CAST(@TimeField AS DATETIME) 

और अगर आप Getdate() का उपयोग कर रहे हैं तो इसका उपयोग पहले करें:

 DECLARE @FechaActual DATETIME = CONVERT(DATE, GETDATE()); SELECT CAST(@FechaActual as DATETIME) + CAST(@HoraInicioTurno AS DATETIME) 
 SELECT CAST(your_date_column AS date) + CAST(your_time_column AS datetime) FROM your_table 

एक जादू की तरह काम करता है

मुझे ऊपर बताए गए कई त्रुटियां थीं, इसलिए मैंने ऐसा किया

 try_parse(concat(convert(date,Arrival_date),' ',arrival_time) as datetime) AS ArrivalDateTime 

यह मेरे लिए काम किया

किसी डेटटाइम कॉलम से दिनांक और समय से एक और डेटाटाइम कॉलम से तारीख को गठबंधन करने के लिए यह आपके लिए सबसे तेज़ उपाय है:

 select cast(cast(DateColumn as date) as datetime) + cast(TimeColumn as datetime) from YourTable