【问题标题】:How can I add GETDATE() command on ntext field?如何在 ntext 字段上添加 GETDATE() 命令?
【发布时间】:2016-01-28 15:11:12
【问题描述】:

我想在 ntext 字段上添加日期。

UPDATE Customer SET Notes='Account has been updated'+ CAST GETDATE()

这是我运行查询时得到的结果。

“操作数类型冲突:datetime 与 ntext 不兼容”

谁能帮我解决这个问题?

【问题讨论】:

  • 所发布的语法无效。但是,您确实需要从 ntext 更改数据类型。它已经被弃用十多年了,处理起来非常痛苦。您应该改用 nvarchar(max)...但是您真的需要那么多存储空间吗?

标签: sql sql-server database sql-server-2008 getdate


【解决方案1】:

您需要将日期转换为 varchar,以便它可以与您拥有的 text/varchar 连接。

'Account has been updated'+ CAST(GETDATE() AS varchar(20))

【讨论】:

  • 您应该始终指定 varchar 的长度,而不是依赖默认值。
【解决方案2】:

您需要将 GETDATE() 的结果转换为字符串才能使其正常工作。最简单的选择是这样做:

UPDATE Customer SET Notes='Account has been updated'+ CAST(GETDATE() AS NVARCHAR(20))

但是,如果您想控制日期/时间的格式,请改用 CONVERT:

UPDATE Customer SET Notes='Account has been updated'+ CONVERT(NVARCHAR(30), GETDATE(), 126)

第三个参数确定要使用的格式,可用选项的完整列表可以在 this MSDN page 上查看

【讨论】:

    【解决方案3】:

    在这种情况下,我会使用 CONVERT 而不是 CAST 来控制输出格式。

    SELECT 'Account has been updated '+ CONVERT(varchar(20),GETDATE(),104)
    

    这个例如给我dd.mm.yyyy。

    在此处查看完整列表:https://msdn.microsoft.com/de-de/library/ms187928%28v=sql.120%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多