现在的位置: 首页 > 综合 > 正文

SQL Server中 将日期格式化.

2013年03月20日 ⁄ 综合 ⁄ 共 3079字 ⁄ 字号 评论关闭

CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在
SQL Server中 将日期格式化.

使用 CONVERT:

CONVERT (data_type[(length)], expression [, style])

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

--------------------------------------

SUBSTRING(CONVERT(varchar, getdate(), 120), 1, 10) 输出为yyyy-mm-dd
SUBSTRING(CONVERT(varchar, getdate(), 120), 1, 7) 输出为yyyy-mm

-------------------------

select ltrim(str(month(inputtime)))+'-'+ltrim(str(day(inputtime)))+' '+ltrim(str(datepart(hh,inputtime)))+':'+ltrim(str(datepart(n,inputtime)) as time from table

如果时间为:
2005-9-15 15:03:02

查询结果:
9-15 15:3

语句如下:
SELECT SUBSTRING(CONVERT(char(19), INPUTTIME, 120), 6, 11) AS TIME FROM TABLE

查询结果:
09-15 15:03

-----------------------

让2005-09-28 15:54:58   显示为2005-09-28

convert(char(10),time,120)

将 2006-3-17 18:14:00 格式化为:03-17

Function DataTime(Tag,tmpDataTime)
'输出格式化时间或者日期
Dim Str

If tmpDataTime="" then tmpDataTime=Now()'如果日期输出为空就用现在的时间来代替
If Tag<>"" and IsDate(tmpDataTime) then
     Str=Lcase(Tag)
     Str=Replace(Str,"yyyy",Year(tmpDataTime))
     Str=Replace(Str,"yy",Right(Year(tmpDataTime),2))
     Str=Replace(Str,"mm",Right("00"&Month(tmpDataTime),2))
     Str=Replace(Str,"dd",Right("00"&Day(tmpDataTime),2))
     Str=Replace(Str,"h",Right("00"&Hour(tmpDataTime),2))
     Str=Replace(Str,"m",Right("00"&Minute(tmpDataTime),2))
     Str=Replace(Str,"s",Right("00"&Second(tmpDataTime),2))
else
     Str=tmpDataTime
End if

DataTime=Str
End Function

 

你可以使用
DataTime(“mm-dd”,Now()) 输出你要的结果
如果是
yyyy:四位数年份
yy:2位数年份
mm:输出月份
dd:输出日期
h:输出时间
m:输出分中
s:输出秒

如果你要得到 类似“2006年5月30日”
那么只要使用DataTime(“yyyy年mm月dd日”,Now())

类似“06年5月30日”

那么只要使用DataTime(“yy年mm月dd日”,Now())
---------------

从库中取出2条信息,信息全部相同,仅仅时间上不同(秒级),如
第一条时间字段值:2006-05-12 10:22:04.000
第二条时间字段值:2006-05-12 10:22:08.000
问题:我怎么把这个时间格式化成 2006-05-12 10:22:00.000

响应者 1:

declare @t table(a datetime)
insert into @t select '2006-05-12 10:22:04.000'
union all select '2006-05-12 10:22:08.000'

select convert(datetime,convert(varchar(16),a,120)) from @t

响应者 2:

select convert(varchar(16),columnname,120) + ':00.000' from tablename

需要更新的话就用

udpate tablename
set columnname = convert(datetime,convert(varchar(16),columnname,120) + ':00.000',120)

响应者 3:

Declare @Time DateTIme
Set @Time='2006-05-12 10:22:08.000'
Select Cast(Convert(Varchar(16),@Time,120) As DateTime)

--結果
2006-05-12 10:22:00.000

响应者 4:

select convert(datetime,convert(varchar(16),a,120)) from @t

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1888905

 

抱歉!评论已关闭.