Try this:
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
OUTPUT:
-----------------------
2010-05-25 11:11:58.000
(1 row(s) affected)
Set basiert:
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
OUTPUT:
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)
Das Datum und die Uhrzeit als Datentypen scheint viel sauberer als das Ziehen von Positionen aus einer Zeichenfolge. Neu bei 08, sagst du. So hast du mich die ersten 9 Yards - ich kann alle Zeilen in der Tabelle aktualisieren - wie aktualisiere ich nur die eingefügten Zeilen - sieht aus wie mindestens ich sollte "INSERT BEFORE" statt nach THX – justSteve
suchen Wenn Sie Vermeiden Sie den Trigger vollständig und fügen Sie der Tabelle stattdessen eine weitere Spalte als berechnete Spalte hinzu. Sie können dies tun, indem Sie eine s-Anweisung wie folgt verwenden: ALTER TABLE yurtable ADD DateAndTime (cast (cast (@datet als Datum) als datetime) + cast (cast (@datet als Zeit) als datetime)); –
In meinem Fall hatte ich eine statische Zeit, die ich anheften wollte und war in der Lage, die innere Besetzung der Zeit zu vermeiden. So wirkt Cast (Cast_Date_col als Datum) wie Datetime + Cast ('11: 59: 59 PM 'als Datetime) prächtig und war ein wenig prägnanter – jinglesthula