2017-04-18 64 views
0

我有表A,它有一个以datetime格式命名为LastUpdateDate的列。它保持与时间数据的日期,如Apr 18 2017 11:15AM。我想摆脱时间数据并保存日期格式为dd/mm/yyyy将datetime列更改为具有现有数据的varchar

所以我想,我改变列VARCHAR。但我有现有的数据。当我更改色谱柱时是否会出现错误?或者还有其他选择吗?我该怎么办?

+2

你需要把它改成'date'不'VARCHAR ' –

+0

SELECT convert(datetime,'Apr 18 2017 11:15 AM') – Chanukya

+0

为什么不保留th日期时间,只需将其选为检索数据时的日期? – JohnHC

回答

1

您应该而不是将列更改为varchar
如果有的话,你应该把它改成一个date数据类型:

ALTER TABLE YourTable 
ALTER COLUMN LastUpdateDate DATE 
GO 

下面是一些数据的示例表(保存我们这一步在你未来的问题):

CREATE TABLE YourTable 
(
    id int identity(1,1), 
    LastUpdateDate datetime 
) 

INSERT INTO YourTable VALUES 
(GETDATE()), 
(DATEADD(DAY, 1, GETDATE())), 
(DATEADD(DAY, 2, GETDATE())), 
(DATEADD(DAY, 3, GETDATE())), 
(DATEADD(DAY, 4, GETDATE())) 

alter table声明:

ALTER TABLE YourTable 
ALTER COLUMN LastUpdateDate DATE 
GO 

测试:

SELECT * 
FROM YourTable 

结果:

id LastUpdateDate 
1 18.04.2017 00:00:00 
2 19.04.2017 00:00:00 
3 20.04.2017 00:00:00 
4 21.04.2017 00:00:00 
5 22.04.2017 00:00:00 

See a live demo on rextester.

+0

这工作,谢谢! – asyaben

+0

很高兴帮助:-) –

1

在您选择查询转换的datetime列到短日期

SELECT CONVERT(date,datetimecomlum) AS short_date FROM A 
相关问题