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

标签 sql sql-server ssms

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

有没有办法转换列?

当我使用 SQL Server Management Studio 的“设计”功能时,出现以下错误:

Saving changes is not permitted. The changes you have made require the following table to be dropped and re-created.

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

最佳答案

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

您可以使用 SQL 来完成:

ALTER TABLE Tab ALTER COLUMN LastModified datetime2 not null

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

关于sql - 将列从日期转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430611/

相关文章:

SQL 查询帮助 : pick newest record and join to another table

sql-server - "When the Job Succeeds"和 "When the Job Completes"之间的区别

sql - 为什么当我创建已经存在的表时,SAS、Proc SQL 不会抛出错误

sql - 如何在SQL Server Management Studio中快速编辑表中的值?

mysql - 在字符之前查找唯一值的计数

java - 使用PreparedStatement的最佳方法executeBatch()

sql - 数据库更新问题

sql-server - 在已经是聚簇键一部分的非聚簇索引中包含 "include"列有什么影响?

sql - 向大数据库表添加一个新列

sql-server-2008-r2 - SQL Server Management Studio-消失的服务器名称