当前位置: 代码迷 >> Sql Server >> SQL datatime类型转换解决办法
  详细解决方案

SQL datatime类型转换解决办法

热度:100   发布时间:2016-04-27 12:24:52.0
SQL datatime类型转换
数据库里有一个字段是“datatime”类型
其中的格式为:2012-04-27 09:00:00.000
想要把它转换为:2012040709
该怎么做呢?
数据量比较大,有几十万条
如何批量转换?
Thank you

------解决方案--------------------
如果datetime类型的话,存入的格式还是你所说的那个格式,除非把字段的类型改为字符型
查询的话,可以这样转换

SQL code
select replace(replace(convert(varchar(13),字段,120),'-',''),' ','') from tb
------解决方案--------------------
SQL code
declare @max as int,@n as intset @max =1000000;--有100W条set @n=1;    --从第一条开始更新while @n<@maxbegin    update  Nums set [time]=convert(varchar(100),[time],12)where [email protected] 条件这里注意你的Id对应就OK了 set @[email protected]+1end
------解决方案--------------------
'2012040709'不是个时间,字串要保存进时间字段,估计得改字段类型

SQL code
/*数据库里有一个字段是“datatime”类型其中的格式为:2012-04-27 09:00:00.000想要把它转换为:2012040709*/if object_id('Table_4') is not null drop table Table_4Create table Table_4(    date datetime)insert into Table_4Select '2012-04-27 09:00:00.000'declare @Year varchar(10),@Month varchar(10),@Day varchar(10),@Hour varchar(10),@date datetimeSelect @date=date From Table_4set @year=substring(Convert(varchar(30),@date,120),1,4)set @month=substring(Convert(varchar(30),@date,120),6,2)set @day=substring(Convert(varchar(30),@date,120),9,2)set @hour=substring(Convert(varchar(30),@date,120),12,2)alter table Table_4 alter column [date] varchar(30)Update Table_4 Set [email protected][email protected][email protected][email protected]Select * From Table_4
------解决方案--------------------
写快了,更新语句应该是
SQL code
update talbeset  字段=replace(replace(replace(convert(varchar(13),字段,120),'-',''),' ',''),':','')
  相关解决方案