日期:2014-05-18  浏览次数:20552 次

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 int
set @max =1000000;--有100W条
set @n=1;    --从第一条开始更新
while @n<@max
begin
    update  Nums set [time]=convert(varchar(100),[time],12)where n=@n--where 条件这里注意你的Id对应就OK了
 set @n=@n+1
end

------解决方案--------------------
'2012040709'不是个时间,字串要保存进时间字段,估计得改字段类型

SQL code
/*数据库里有一个字段是“datatime”类型
其中的格式为:2012-04-27 09:00:00.000
想要把它转换为:2012040709*/
if object_id('Table_4') is not null drop table Table_4
Create table Table_4
(
    date datetime
)
insert into Table_4
Select '2012-04-27 09:00:00.000'

declare @Year varchar(10),@Month varchar(10),@Day varchar(10),@Hour varchar(10),@date datetime
Select @date=date From Table_4
set @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 date=@year+@Month+@Day+@Hour
Select * From Table_4

------解决方案--------------------
写快了,更新语句应该是
SQL code

update talbe
set  字段=replace(replace(replace(convert(varchar(13),字段,120),'-',''),' ',''),':','')