将列从日期转换为日期时间

2022-03-07 00:00:00 sql sql-server ssms

我有一个名为Lastmodified的列,其数据类型为Date,但它应该是DateTime

有没有转换列的方法?

当我使用SQL Server Management Studio的"设计"功能时,我收到以下错误:

不允许保存更改。您所做的更改需要以下内容 要删除并重新创建的表。

对删除表不是很感兴趣,我只是想知道是否可以将列从Date转换为Datetime,或者我是否必须删除该列并创建具有正确数据类型的新列?


解决方案

它不应该需要删除表并重新创建它,除非该列参与了一个或多个约束。

您只需使用SQL:

即可完成此操作
ALTER TABLE Tab ALTER COLUMN LastModified datetime2 not null

(我选择了datetime2而不是datetime,因为前者是recommended for all new development work,并且由于该列当前是date,我知道您使用的是SQL Server 2008或更高版本)

相关文章