इस प्रयास करें:
DECLARE @Date varchar(23)
,@Time varchar(23)
,@Both datetime
SELECT @Date='2010-05-25 00:00:00.000'
,@Time='2010-01-01 11:11:58.000'
SELECT @Both=LEFT(@Date,10)+' '+RIGHT(@Time,12)
SELECT @Both
उत्पादन:
-----------------------
2010-05-25 11:11:58.000
(1 row(s) affected)
सेट आधारित:
DECLARE @INSERTED table(RowID int, DateOf varchar(23), TimeOf varchar(23), DateTimeOf datetime)
INSERT @INSERTED VALUES (1,'2010-05-25 00:00:00.000','2010-01-01 11:11:58.000',null)
INSERT @INSERTED VALUES (2,'2010-04-05 00:00:00.000','2010-01-01 12:34:56.789',null)
INSERT @INSERTED VALUES (3,'2010-03-15 00:00:00.000','2010-01-01 01:01:01.000',null)
UPDATE @INSERTED
SET DateTimeOf=LEFT(DateOf,10)+' '+RIGHT(TimeOf,12)
SELECT * FROM @INSERTED
उत्पादन:
RowID DateOf TimeOf DateTimeOf
------- ----------------------- ----------------------- -----------------------
1 2010-05-25 00:00:00.000 2010-01-01 11:11:58.000 2010-05-25 11:11:58.000
2 2010-04-05 00:00:00.000 2010-01-01 12:34:56.789 2010-04-05 12:34:56.790
3 2010-03-15 00:00:00.000 2010-01-01 01:01:01.000 2010-03-15 01:01:01.000
(3 row(s) affected)
स्रोत
2010-05-25 11:30:02
दिनांक और समय डेटाटाइप्स के रूप में एक स्ट्रिंग से पदों खींच की तुलना में बहुत क्लीनर लगता है। 08 से नया, आप कहते हैं। तो आपको मुझे पहले 9 गज की दूरी मिल गई है - मैं तालिका में सभी पंक्तियों को अपडेट कर सकता हूं - मैं केवल डाली गई पंक्तियों को कैसे अपडेट करूं - कम से कम मुझे लगता है कि मुझे thx – justSteve
के बजाय 'INSERT BEFORE' को देखना चाहिए यदि आप ट्रिगर से पूरी तरह से बच सकते हैं और इसके बजाय एक गणना कॉलम के रूप में तालिका में एक और कॉलम जोड़ सकते हैं। आप इस तरह के कथन का उपयोग करके ऐसा कर सकते हैं: वैकल्पिक टैबलेट एडीडी डेट एंडटाइम (कास्ट (कास्ट (@ डेटेट तिथि के रूप में) डेटटाइम के रूप में) + कास्ट (कास्ट (@ डेटेट समय के रूप में) डेटाटाइम के रूप में); –
मेरे मामले में मेरे पास एक स्थिर समय था जिस पर मैं काम करना चाहता था और समय के हिस्से में भीतरी कलाकारों से बचने में सक्षम था। तो कास्ट (कास्ट (some_date_col तिथि के रूप में) डेटटाइम + कास्ट ('11: 59: 59 अपराह्न 'डेटाटाइम के रूप में) ने शानदार काम किया और थोड़ा और संक्षिप्त था। Ymmv – jinglesthula