我有一个列int
,它存储了2017
之类的年份。
如何将其转换为将结果保存到另一个实际的日期时间列,例如2017-01-01
?
答案 0 :(得分:2)
DATEFROMPARTS是一个新的SQL Server函数(来自SQL Server 2012),它允许使用其部分构建日期值:年,月,日。
在MS Docs上查看DATEFROMPARTS。
UPDATE TableName
SET <UpdColName> = DATEFROMPARTS(<IntColName>,1,1)
WHERE <some condition>
答案 1 :(得分:1)
使用功能DATEFROMPARTS
。
select datefromparts(colname,1,1)
from tablename
答案 2 :(得分:1)
尝试使用=IF(COUNTIF(Teams!C:C, Goals!A2), "", "N/A")
,
DATEFROMPARTS
答案 3 :(得分:1)
这很复杂。首先,将列转换为varchar()
:
alter table t alter column col varchar(255);
执行此操作时,整数将转换为varchar()
。
接下来,追加&#39; 0101&#39;价值:
update t
set col = col + '0101';
这将值放在'YYYYMMDD'
格式中,SQL Server将其识别为日期。
最后,改为约会:
alter table t alter column col date;
如果您愿意,可以在表格中添加另一列作为日期,并分两步完成:
alter table t add column datecol date;
update t
set datecol = concat(intcol, '0101');
虽然您也可以使用datefromparts()
,但上述内容也适用于早期版本的SQL Server。