Sql 使用现有数据将datetime列更改为varchar

Sql 使用现有数据将datetime列更改为varchar,sql,sql-server,datetime,type-conversion,varchar,Sql,Sql Server,Datetime,Type Conversion,Varchar,我有一个表A,它有一个名为LastUpdateDate的datetime格式的列。它使用时间数据保存日期,如2017年4月18日上午11:15。我想去掉时间数据,并将日期保留为dd/mm/yyyy格式 所以我想,我把列的值改为VARCHAR。但我有现有的数据。当我更改列时是否出现错误?或者还有其他选择吗?我该怎么办?您应该而不是将列更改为varchar 如果有任何更改,应将其更改为日期数据类型: ALTER TABLE YourTable ALTER COLUMN LastUpdateDat

我有一个表A,它有一个名为
LastUpdateDate
的datetime格式的列。它使用时间数据保存日期,如2017年4月18日上午11:15。我想去掉时间数据,并将日期保留为
dd/mm/yyyy
格式


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

您应该而不是将列更改为
varchar

如果有任何更改,应将其更改为
日期
数据类型:

 ALTER TABLE YourTable
 ALTER COLUMN LastUpdateDate DATE
 GO
这是一个包含一些数据的示例表(请在以后的问题中保存此步骤):

alter table语句:

 ALTER TABLE YourTable
 ALTER COLUMN LastUpdateDate DATE
 GO
测试:

结果:

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

您应该不要将列更改为
varchar

如果有任何更改,应将其更改为
日期
数据类型:

 ALTER TABLE YourTable
 ALTER COLUMN LastUpdateDate DATE
 GO
这是一个包含一些数据的示例表(请在以后的问题中保存此步骤):

alter table语句:

 ALTER TABLE YourTable
 ALTER COLUMN LastUpdateDate DATE
 GO
测试:

结果:

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

在select查询中,将datetime列转换为短日期

SELECT CONVERT(date,datetimecomlum) AS short_date FROM A

在select查询中,将datetime列转换为短日期

SELECT CONVERT(date,datetimecomlum) AS short_date FROM A

您需要将其更改为
date
not
varchar
SELECT convert(datetime,'2017年4月18日11:15AM')为什么不保留datetime,并在检索数据时选择它作为日期?这意味着当我将列更改为date时,我的现有数据不会因更改而生效,对吗?如果将列更改为date,您将丢失时间部分。您实际上不想更改表中的列吗?仅在选择结果中?您需要将其更改为
date
not
varchar
selectconvert(日期时间,2017年4月18日11:15AM')为什么不保留日期时间,并在检索数据时将其选为日期?这意味着当我将列更改为date时,我的现有数据不会因更改而生效,对吗?如果将列更改为日期,则会丢失时间部分。您实际上不想更改表中的列吗?只是在一个选择的结果中?很乐意帮助:-)很乐意帮助:-)