SQL 服务器日期时间到日期时间字符串列

SQL Server Datetime to Datetime String Column

我想将所有 datetime 列更新为新的字符串列,该列仅提取 date 部分(指的是 datetime 列类型)。我做了一些研究,datestr 的格式应该是:

CONVERT(VARCHAR(10), @dt, 105) s2;

我的查询似乎不起作用:

UPDATE [dbo].[myTable]
SET [dbo].[myTable].datestr = (
   SELECT [dbo].[myTable].dt
   FROM [dbo].[myTable]
   WHERE [dbo].[myTable].ID = [dbo].[myTable].ID
)

您很可能会收到类似于“子查询返回多于一行”的错误。更新查询不需要子查询。应该是这样的:

UPDATE [dbo].[myTable]
SET datestr = CONVERT(VARCHAR(10), dt, 105);

也就是说,完全没有必要在 table 中存储相同的信息两次。如果您想要特定格式的日期时间,请按需格式化:

SELECT CONVERT(VARCHAR(10), dt, 105) AS datestr
FROM [dbo].[myTable]