转换为datetime - DateTime列,其中包含日期和nvarchar列以及时间

use*_*656 2 sql sql-server sql-server-2005

我有一个Date Date,它是Datetime类型.我有一个nvarchar列,里面有时间.例如:

    Date(datetime)                            Time(nvarchar)
-----------                                  ----------
2010-06-08 00:00:00.000                         17:30
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它们连接到2010-06-08 17:30:00.000作为日期时间对象.提前致谢.

Dev*_*art 6

试试这个(它适用于2005及更高版本) -

DECLARE 
      @Date DATETIME 
    , @Time NVARCHAR(5)

SELECT 
      @Date = '2010-06-08 00:00:00.000'
    , @Time = '17:30'   

SELECT @Date + @Time
Run Code Online (Sandbox Code Playgroud)

输出:

2010-06-08 17:30:00.000
Run Code Online (Sandbox Code Playgroud)

  • @NenadZivkovic`17:30`被隐式转换为'1900-01-01 17:30:00.000`.`datetime` +`datetime`根据与'1900-01-01`相比的两者的相对差异产生结果日期时间.所以例如`SELECT GETDATE()+ GETDATE()`返回`2126-10-14 03:41:09.327` (3认同)