将datetime转换为数字

时间:2016-01-07 16:38:17

标签: sql-server-2005

我正在尝试获取表中varchar列的日期,向其中添加1天,并将其设置为datetime变量的值。这是每天运行的流程的一部分,我需要确保在一个月末将一天重置为一天。或者在年底它不会从151231增加到151232.我遇到的问题是将@Date转换为YYMMDD形式的数字。例如,VIRN_CHK ='151231',@ Date如下所示是'2016年1月1日12:00 AM'。我需要将其转换为160101,因此我可以将其保存在另一个numeric(6,0)类型表的列中。

DECLARE @Date as datetime
set @Date = convert(varchar,dateadd(d, 1,(select top(1) VIRN_CHK from STAGE_INST)))
update cdcdatei
set OT_DATE = @Date

2 个答案:

答案 0 :(得分:0)

这将通过重建字符串格式

来实现
SELECT RIGHT(YEAR('2015-11-01'),2) 
    + RIGHT('00' + CAST(MONTH('2015-11-01') AS VARCHAR(2)),2) 
    + RIGHT('00' + CAST(DAY('2015-11-01') AS VARCHAR(2)),2)

答案 1 :(得分:0)

所以你需要从日期中提取年,月,日数字吗?您可以使用DATEPART

DATEPART(yy,dateadd) AS DateYear,
DATEPART(mm,dateadd) AS DateMonth,
DATEPART(dd,dateadd) AS DateDay

然后你可以将它们相乘并求它们以获得你需要的东西

VIRN_CHK = DateDay + DateMont * 100 + DateYear * 10000