我需要一些帮助,如果可能的话,我试图更新[Created On]和[Modified On],我已尝试过多种方式通过SOF(在这里)这样做。
USE [DBName]
SET [Created On] = '2017-07-27 10:13:00',[Modified On] = '2017-07-27 10:19:00'
WHERE [Contract] = 'xxxxxxxxxxxxxxxx'
GO
两列设置为(nvarchar(255),null - 但是,它们现在已更改为(datetime,null) - 两种方式都给了我相同的错误。知道我知道这两列有日期和时间数据这是不同的,我无法进入并纠正它,因为它已经像这样被移交给我。前一个人知道如何操纵数据,因为我的生活我不能!
我反复收到以下错误,我感到茫然。
消息241,级别16,状态1,行4转换时转换失败 字符串的日期和/或时间。
我使用SQL Server Management Studio v17.1作为管理员。
如果可能,有人可以引导我朝正确的方向前进吗?
提前致谢!
答案 0 :(得分:1)
使用ISO 8601日期
cmd-t
为什么呢?隐含的DATEFORMAT按语言设置
USE [DBName]
SET [Created On] = '20170727 10:13:00',[Modified On] = '20170727 10:19:00'
WHERE [Contract] = 'xxxxxxxxxxxxxxxx'
GO
答案 1 :(得分:0)
您是否使用过UPDATE
声明?
UPDATE t
SET [Created On] = '2017-07-27 10:13:00',
[Modified On] = '2017-07-27 10:19:00'
WHERE [Contract] = 'xxxxxxxxxxxxxxxx';
注意:这也用一个空格替换双空格。如果您对上述问题有疑问,则datetime常量的正式定义使用“T”而不是空格。
答案 2 :(得分:0)
UPDATE t
SET Cast([CreatedOn] AS DATETIME) = '2017-07-31 08:05:00',
cast([ModifiedOn] AS datetime) = '2017-07-31 15:25:00'
FROM tablename t
WHERE [Contract] = 'xxxxxxxxxxxxxxxx'