CREATE TABLE dbo.MyTable(
ID INT IDENTITY(1,1) PRIMARY KEY,
DTColumn DATETIME NOT NULL
);
GO
INSERT dbo.MyTable(DTColumn) VALUES
('20120410 08:03:00.000'),
('20010101 01:01:01.000');
BEGIN TRANSACTION;
UPDATE dbo.MyTable
-- Style 126 / ISO8601 = yyyy-mm-ddThh:mi:ss.mmm
SET DTColumn = STUFF(CONVERT(VARCHAR(50),DTColumn,126) ,1, 10, '2012-05-10')
-- Uncomment this line to see the old and new values
-- OUTPUT deleted.DTColumn AS OldValue, inserted.DTColumn AS NewValue
WHERE CONVERT(DATE,DTColumn)='2012-04-10'
SELECT * FROM dbo.MyTable;
ROLLBACK;
-- COMMIT
6条答案
按热度按时间j1dl9f461#
mbyulnm02#
结果:
uurv41yg3#
我假设你用
DD/MM/YYYY
发布你的日期。如果是MM/DD/YYYY
,你应该用DATEADD(DAY,1,YourColumn)
代替。nsc4cvqm4#
在这个例子中,我使用CONVERT(varchar(12),columnDatetime)来得到一个长度为12个字符的字符串,假设一个时间的例子,格式为“20:10:15.250”。
8fq7wneg5#
更新表格X设置dttime = CONCAT(“2012-10-24“,时间(dttime))WHERE日期(dt 1)=”2012 -05-10“
fnx2tebb6#
这是我的查询。它将更新 checkout 日期与签署日期没有改变时间。
UPDATE数据表名称SET登入时间=STUFF(CONVERT(VARCHAR(50),登入时间,126),1,10,CONVERT(日期,登出时间))其中识别码= 100