读书人

SQL datatime类型转换解决办法

发布时间: 2012-06-13 12:30:18 作者: rapoo

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 n=@n--where 条件这里注意你的Id对应就OK了 set @n=@n+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 date=@year+@Month+@Day+@HourSelect * From Table_4
[解决办法]
写快了,更新语句应该是
SQL code
update talbeset  字段=replace(replace(replace(convert(varchar(13),字段,120),'-',''),' ',''),':','') 

读书人网 >SQL Server

热点推荐