时间转换的问题

Leon_He2014 2011-08-25 09:06:04
我需要把时间转换成小时
比如
'2011-1-1 01:01:00' 要转换成2011010101
注意最后是01 不是1

ps:在sql server 2008中
...全文
80 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leon_He2014 2011-08-25
  • 打赏
  • 举报
回复
我用一百万的数据量测试了一下

select
convert(varchar(8),cast(col as datetime),112)+
convert(varchar(2),cast(col as datetime),108) from test0825


这个是最快的。比其他要快几秒钟
--小F-- 2011-08-25
  • 打赏
  • 举报
回复
--日期转换参数,值得收藏
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

其它我不常用的日期格式转换方法:

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
叶子 2011-08-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 stublue 的回复:]
各位,如果这个要用来处理500万左右的数据。哪个处理方式性能比较好?
[/Quote]

create table test0825(col varchar(20))
insert into test0825 select '2011-1-1 01:01:00'
go 1000

select
convert(varchar(8),cast(col as datetime),112)+
convert(varchar(2),cast(col as datetime),108) from test0825

select
replace(replace(convert(varchar(13),cast(col as datetime),120),'-',''),' ','')
from test0825

select left(replace(replace(replace
(convert(varchar,col, 120 ),'-',''),' ',''),':',''),10)
from test0825

--1000数据量测试,开销相同1:1:1
Leon_He2014 2011-08-25
  • 打赏
  • 举报
回复
各位,如果这个要用来处理500万左右的数据。哪个处理方式性能比较好?
快溜 2011-08-25
  • 打赏
  • 举报
回复
select  replace(replace(CONVERT(varchar(13),getdate(),120),'-',''),' ','')
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复

select
replace(replace(replace(convert(varchar(16),convert(datetime,'2011-1-1 01:01:00'),120),'-',''),':',''),' ','')

/*
201101010101
chuanzhang5687 2011-08-25
  • 打赏
  • 举报
回复
select left(replace(replace(replace(CONVERT(varchar, '2011-1-1 01:01:00', 120 ),'-',''),' ',''),':',''),10)


--------------------
2011110101

(1 行受影响)

chuanzhang5687 2011-08-25
  • 打赏
  • 举报
回复
select left(replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':',''),10)
飘零一叶 2011-08-25
  • 打赏
  • 举报
回复
select  replace(replace(CONVERT(varchar(13),getdate(),120),'-',''),' ','') as time
/*
2011082521
*/



叶子 2011-08-25
  • 打赏
  • 举报
回复

declare @t varchar(20);set @t='2011-1-1 01:01:00'

select
convert(varchar(8),cast(@t as datetime),112)+
convert(varchar(2),cast(@t as datetime),108)

/*
2011010101
*/

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧