加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

CONVERT用法

发布时间:2020-12-12 14:52:05 所属栏目:MsSql教程 来源:网络整理
导读:CONVERT 将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在 SQL?Server中 将日期格式化. 使用?CONVERT: CONVERT?(data_type[(length)],?expression?[,?style]) select?CONVERT(varchar,?getdate(),?120?)

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,?120?),'-',''),'?',':','')
20040912110608

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

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

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

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

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

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

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

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

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

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

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

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

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

select?CONVERT(varchar(12)?,?114?)
11:06:08.177

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

SUBSTRING(CONVERT(varchar,?120),?1,?10)?输出为yyyy-mm-dd?
SUBSTRING(CONVERT(varchar,?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,?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),"dd",Right("00"&Day(tmpDataTime),"h",Right("00"&Hour(tmpDataTime),"m",Right("00"&Minute(tmpDataTime),"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,120)?+?':00.000',u5b8bu4f53; font-size:14px"> 响应者?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,120))?from?@t?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读