我有表A,它有一个日期时间格式的LastUpdateDate
列。它与Apr 18 2017 11:15AM
等时间数据保持日期。我想摆脱时间数据并以dd/mm/yyyy
格式保留日期。
所以我想,我把列改为VARCHAR。但我有现有的数据。我改变列时会出错吗?或者还有其他选择吗?我该怎么办?
答案 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
答案 1 :(得分:1)
在您的选择查询中,将日期时间列转换为短日期
SELECT CONVERT(date,datetimecomlum) AS short_date FROM A