我的一个表架构中有一个DateTime(null)
列为StartDate
。
客户已经在其表格中输入了大量数据。
现在他们希望该列的类型为Character(10)
有可能吗?它不会损坏他们已输入的数据吗?这样做的安全方法是什么?
答案 0 :(得分:2)
SELECT StartDate, CONVERT(CHAR, StartDate, 10) AS NEWOUTPUT
FROM yourtable
如果NEWOUTPUT列的结果没问题,那就继续..
alter table yourtable alter column StartDate char(10) not null;
答案 1 :(得分:1)
直接改变可能会导致麻烦。你需要
YEAR(datecolname) + '-' + MONTH(datecolname) + '-' + DAY(datecolname)
。但有一点是,如果您使用char而不是datetime和特定的sql语句(例如"之间的#34;),那么搜索特定日期的速度可能会慢一些。再也不会工作了。
如果它就像你在评论中提到的那样,因为他们不想在一天中输入,那么更改他们必须输入日期以便将日期默认设置为1可能会更好。但是取决于有问题的申请。