将字符数据类型的连接日期和时间列连接到DateTime DataType

时间:2011-09-17 14:14:58

标签: tsql

运行查询后,如何将它们重新组合在一起?

我能够运行以下查询将日期值转换为datetime并将时间部分附加到它

declare @date char(8), @time char(8)

select @date='20101001',@time ='12:10:47'

select cast(@date as datetime)+@time

在上面的方法中,日期值转换为datetime数据类型,时间值为 添加到它。

--------------Output ----------------------

result tab -

(No column name )

row1 || 2011-09-16 22:16.000

如何隐藏回原始数据值(撤消)??????

我运行上面的查询转换为datetime数据类型,时间值为 添加到它 - 运作良好...现在我想撤消回到原始日期值.....

2 个答案:

答案 0 :(得分:0)

目前尚不清楚问题是什么,但这是我的猜测。如果您尝试提取日期时间段,请使用DatePart函数

    declare @date char(8), @time char(8)

    select @date='20101001',@time ='12:10:47'

    select cast(@date as datetime)+@time

    select cast(cast(@date as datetime)+@time as datetime) 

    select DATEPART(mm,cast(cast(@date as datetime)+@time as datetime))

答案 1 :(得分:0)

要将datetime的组成部分提取为特定格式的字符串,请使用CONVERT函数并传递所需的样式。要回到你开始使用的地方

DECLARE @date CHAR(8),
        @time CHAR(8)

SELECT @date = '20101001',
       @time = '12:10:47'

DECLARE @dt DATETIME

SELECT @dt = CAST(@date AS DATETIME) + @time

SELECT CONVERT(CHAR(8), @dt, 112) AS [@date],
       CONVERT(CHAR(8), @dt, 108) AS [@time]  

哪个给出了

@date    @time
-------- --------
20101001 12:10:47