bu deneyin:
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
ÇIKIŞ: merkezli
-----------------------
2010-05-25 11:11:58.000
(1 row(s) affected)
Seti:
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
ÇIKIŞ:
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)
Veri türleri olarak Tarih ve Saat, bir dizeden konum çekmekten daha temiz görünür. 08'e yeni diyorsun. Yani bana ilk 9 metre aldım - tablodaki tüm satırları güncelleyebilirim - sadece eklenen satırları nasıl güncellerim - en azında görünen gibi olmalıdır AFTER thx – justSteve
yerine önce INSERT ÖNCE bakmalıyım Tetikleyiciyi tamamen ortadan kaldırabilir ve tabloya hesaplanmış bir sütun olarak başka bir sütun ekleyebilir. Bunu aşağıdaki gibi bir deyim kullanarak yapabilirsiniz: ALTER TABLE yourtable ADD DateAndTime (döküm (tarih olarak datetime olarak) (datetime olarak)) + cast (datetime olarak) (zaman olarak @datet))); –
Benim durumumda, sabitlemek istediğim statik bir zaman geçirdim ve zaman diliminde iç dökümden kaçınmayı başardım. Öyleyse cast (cast (date_date_col tarih olarak) datetime + cast olarak ('11: 59: 59 PM 'datetime olarak) görkemli bir şekilde çalıştı ve biraz daha özlüydi. – jinglesthula