我正在尝试获取表中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
答案 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