我有表A,它有一个以datetime格式命名为LastUpdateDate
的列。它保持与时间数据的日期,如Apr 18 2017 11:15AM
。我想摆脱时间数据并保存日期格式为dd/mm/yyyy
。将datetime列更改为具有现有数据的varchar
所以我想,我改变列VARCHAR。但我有现有的数据。当我更改色谱柱时是否会出现错误?或者还有其他选择吗?我该怎么办?
我有表A,它有一个以datetime格式命名为LastUpdateDate
的列。它保持与时间数据的日期,如Apr 18 2017 11:15AM
。我想摆脱时间数据并保存日期格式为dd/mm/yyyy
。将datetime列更改为具有现有数据的varchar
所以我想,我改变列VARCHAR。但我有现有的数据。当我更改色谱柱时是否会出现错误?或者还有其他选择吗?我该怎么办?
您应该而不是将列更改为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
这工作,谢谢! – asyaben
很高兴帮助:-) –
在您选择查询转换的datetime列到短日期
SELECT CONVERT(date,datetimecomlum) AS short_date FROM A
你需要把它改成'date'不'VARCHAR ' –
SELECT convert(datetime,'Apr 18 2017 11:15 AM') – Chanukya
为什么不保留th日期时间,只需将其选为检索数据时的日期? – JohnHC