SQLServer中DateTime转换成Varchar

最近一段时间,在修改两个数据库(使用sql server),要求相同表相同字段的类型要一致。

一,问题呈现

A,B两个数据库都有table1,table1中都有diaocrq字段(原来是datetime类型),A库把daocrq改成了varchar,B库也无脑的跟着把daocrq改成了varchar,导致B库中原来的数据错乱

SQLServer中DateTime转换成Varchar

公司使用的是easyui,原来的调查日期字段是存时间的,只存到年月日,表中的数据格式改变导致页面回显出现异常

SQLServer中DateTime转换成Varchar

二,解决方法

在网上查了一下sql server常用时间格式

SQLServer中DateTime转换成Varchar

 

发现把时间类型改变成字符串时,sql server 默认把时间转成第一种形式,只需要把原来的格式转成easyui认可的格式即可。

使用sql update一下

sql: update table1 set diaocrq=CONVERT(varchar(100),cast(diaocrq as datetime), 23) 

执行后查看表中数据

SQLServer中DateTime转换成Varchar

再看一下页面

SQLServer中DateTime转换成Varchar

三,收获了什么

1,表字段类型的修改,要考虑原来的数据会变成什么样,

     如datetime转成varchar默认使用CONVERT(varchar(100), GETDATE(), 0)转换。

2,后台数据的修改对前端使用框架的影响

    在修改数据格式时,要问问前端框架是否同不同意你这样做,easyui-date框只认 年-月-日的格式