如何将字符串列转换为日期列



从CSV文件导入日期列,其中字符串值显示为

<表类> 日期 tbody><<tr>447054470444703
select cast (44705-1 as smalldatetime) gives 2022-05-25 00:00

因此,您可以使用上面的命令更新列。

见https://dbfiddle.uk/?rdbms=sqlserver_2017&小提琴= dc24abb3025e0f3796e7d978ba406be3

新的fiddle with update语句,这一行将更新所有行,按照测试。

update #test
set pdate = cast(dateadd(d,tdate-2,'1899-12-30') as smalldatetime)

要将字符串转换为日期,我们可以添加临时日期列并填充它,删除旧列并将新列重命名为旧列

alter table TableName add NewColumnName date null; --create temporary column
update TableName set NewColumnName =dateadd(d,cast(cast([date] as float) as int)-2,'1899-12-30') --fill it
alter table TableName drop column [date]--delete old column
EXEC sp_RENAME 'TableName.NewColumnName' , 'date', 'COLUMN'--rename new one to old one

相关内容

  • 没有找到相关文章

最新更新