datatime的拼接
tsrq (datetime) tssj(char(8))
2008-01-01 00:00:00 09:26:47
2008-01-01 00:00:00 09:49:23
2008-01-01 00:00:00 11:16:53
现在表T字段tsrq(类型datetime)里面只有日期没有具体时间(时间都是 00:00:00),另一个字段tssj有具体时间09:26:47,类型是char(8))。如果把tssj时间拼到tsrq里面。
------最佳解决方案-------------------- CREATE TABLE test (tsrq DATETIME, tssj char(8))
INSERT INTO test
SELECT '2008-01-01 00:00:00', '09:26:47'
UNION ALL
SELECT '2008-01-01 00:00:00', '09:49:23'
UNION ALL
SELECT '2008-01-01 00:00:00', '11:16:53'
SELECT CONVERT(VARCHAR(10),CONVERT (DATE,tsrq))+' '+CONVERT(VARCHAR(10),tssj) FROM test
/*
---------------------
2008-01-01 09:26:47
2008-01-01 09:49:23
2008-01-01 11:16:53
*/ ------其他解决方案--------------------
update a
set tsrs=convert(varchar(10),convert (date,tsrq))+' '+convert(varchar(10),tssj)
from tableName a,tableName b where a.主键=b.主键
--两个tableName都是你的那个表
------其他解决方案-------------------- 如果要更新的话
update #A set tsrq=tsrq+tssj-- from T
只是查询的话
select tsrq+tssj from T
MSSQL2008测试可以。。
------其他解决方案-------------------- 引用: 如果要更新的话
update T set tsrq=tsrq+tssj ------其他解决方案-------------------- select tsrq+convert(datetime,tssj) from tb ------其他解决方案-------------------- 引用: SQL code123456update a set tsrs=convert(varchar(10),convert (date,tsrq))+' '+convert(varchar(10),tssj) from tableName a,tableName b where a.主键=b.主键 --两个tableName都是你的那个表
为什么要自关联一下呢,直接 update tableName set tsrs=convert(varchar(10),convert (date,tsrq))+' '+convert(varchar(10),tssj) 也没问题吧?