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