使用现有数据

时间:2017-04-18 08:20:36

标签: sql sql-server datetime type-conversion varchar

我有表A,它有一个日期时间格式的LastUpdateDate列。它与Apr 18 2017 11:15AM等时间数据保持日期。我想摆脱时间数据并以dd/mm/yyyy格式保留日期。

所以我想,我把列改为VARCHAR。但我有现有的数据。我改变列时会出错吗?或者还有其他选择吗?我该怎么办?

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:1)

在您的选择查询中,将日期时间列转换为短日期

SELECT CONVERT(date,datetimecomlum) AS short_date FROM A