CONVERT日期转换及其他使用.docx

上传人:b****5 文档编号:7629250 上传时间:2023-01-25 格式:DOCX 页数:9 大小:20.54KB
下载 相关 举报
CONVERT日期转换及其他使用.docx_第1页
第1页 / 共9页
CONVERT日期转换及其他使用.docx_第2页
第2页 / 共9页
CONVERT日期转换及其他使用.docx_第3页
第3页 / 共9页
CONVERT日期转换及其他使用.docx_第4页
第4页 / 共9页
CONVERT日期转换及其他使用.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

CONVERT日期转换及其他使用.docx

《CONVERT日期转换及其他使用.docx》由会员分享,可在线阅读,更多相关《CONVERT日期转换及其他使用.docx(9页珍藏版)》请在冰豆网上搜索。

CONVERT日期转换及其他使用.docx

CONVERT日期转换及其他使用

CONVERT日期转换

CONVERT(data_type,expression[,style])

convert(varchar(10),字段名,转换格式)

说明:

此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)

相互转换的时候才用到.

语句结果

SELECTCONVERT(varchar(100),GETDATE(),0)071520094:

06PM

SELECTCONVERT(varchar(100),GETDATE(),1)07/15/09

SELECTCONVERT(varchar(100),GETDATE(),2)09.07.15

SELECTCONVERT(varchar(100),GETDATE(),3)15/07/09

SELECTCONVERT(varchar(100),GETDATE(),4)15.07.09

SELECTCONVERT(varchar(100),GETDATE(),5)15-07-09

SELECTCONVERT(varchar(100),GETDATE(),6)150709

SELECTCONVERT(varchar(100),GETDATE(),7)0715,09

SELECTCONVERT(varchar(100),GETDATE(),8)16:

06:

26

SELECTCONVERT(varchar(100),GETDATE(),9)071520094:

06:

26:

513PM

SELECTCONVERT(varchar(100),GETDATE(),10)07-15-09

SELECTCONVERT(varchar(100),GETDATE(),11)09/07/15

SELECTCONVERT(varchar(100),GETDATE(),12)090715

SELECTCONVERT(varchar(100),GETDATE(),13)1507200916:

06:

26:

513

SELECTCONVERT(varchar(100),GETDATE(),14)16:

06:

26:

513

SELECTCONVERT(varchar(100),GETDATE(),20)2009-07-1516:

06:

26

SELECTCONVERT(varchar(100),GETDATE(),21)2009-07-1516:

06:

26.513

SELECTCONVERT(varchar(100),GETDATE(),22)07/15/094:

06:

26PM

SELECTCONVERT(varchar(100),GETDATE(),23)2009-07-15

SELECTCONVERT(varchar(100),GETDATE(),24)16:

06:

26

SELECTCONVERT(varchar(100),GETDATE(),25)2009-07-1516:

06:

26.513

SELECTCONVERT(varchar(100),GETDATE(),100)071520094:

06PM

SELECTCONVERT(varchar(100),GETDATE(),101)07/15/2009

SELECTCONVERT(varchar(100),GETDATE(),102)2009.07.15

SELECTCONVERT(varchar(100),GETDATE(),103)15/07/2009

SELECTCONVERT(varchar(100),GETDATE(),104)15.07.2009

SELECTCONVERT(varchar(100),GETDATE(),105)15-07-2009

SELECTCONVERT(varchar(100),GETDATE(),106)15072009

SELECTCONVERT(varchar(100),GETDATE(),107)0715,2009

SELECTCONVERT(varchar(100),GETDATE(),108)16:

06:

26

SELECTCONVERT(varchar(100),GETDATE(),109)071520094:

06:

26:

513PM

SELECTCONVERT(varchar(100),GETDATE(),110)07-15-2009

SELECTCONVERT(varchar(100),GETDATE(),111)2009/07/15

SELECTCONVERT(varchar(100),GETDATE(),112)20090715

SELECTCONVERT(varchar(100),GETDATE(),113)1507200916:

06:

26:

513

SELECTCONVERT(varchar(100),GETDATE(),114)16:

06:

26:

513

SELECTCONVERT(varchar(100),GETDATE(),120)2009-07-1516:

06:

26

SELECTCONVERT(varchar(100),GETDATE(),121)2009-07-1516:

06:

26.513

SELECTCONVERT(varchar(100),GETDATE(),126)2009-07-15T16:

06:

26.513

SELECTCONVERT(varchar(100),GETDATE(),130)2314304:

06:

26:

513PM

SELECTCONVERT(varchar(100),GETDATE(),131)23/07/14304:

06:

26:

513PM

style数字在转换时间时的含义如下:

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

Style(2位表示年份)|Style(4位表示年份)|输入输出格式

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

0|100|monddyyyyhh:

miAM(或PM)

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

1|101美国|mm/dd/yy

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

2|102ANSI|yy-mm-dd

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

3|103英法|dd/mm/yy

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

4|104德国|dd.mm.yy

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

5|105意大利|dd-mm-yy

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

6|106|ddmonyy

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

7|107|mondd,yy

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

8|108|hh:

mm:

ss

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

9|109|monddyyyyhh:

mi:

ss:

mmmmAM(或PM)

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

10|110美国|mm-dd-yy

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

11|111日本|yy/mm/dd

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

12|112ISO|yymmdd

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

13|113欧洲默认值|ddmonyyyyhh:

mi:

ss:

mmm(24小时制)

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

14|114|hh:

mi:

ss:

mmm(24小时制)

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

20|120ODBC规范|yyyy-mm-ddhh:

mi:

ss(24小时制)

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

21|121|yyyy-mm-ddhh:

mi:

ss:

mmm(24小时制)

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

说明:

使用CONVERT:

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

参数

expression

是任何有效的Microsoft®SQLServer™表达式。

data_type

目标系统所提供的数据类型,包括bigint和sql_variant。

不能使用用户定义的数据类型。

length

nchar、nvarchar、char、varchar、binary或varbinary数据类型的可选参数。

style

日期格式样式,借以将datetime或smalldatetime数据转换为字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型);或者字符串格式样式,借以将float、real、money或smallmoney数据转换为字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型)。

SQLServer支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将datetime或smalldatetime转换为字符数据的style值。

给style值加100,可获得包括世纪数位的四位年份(yyyy)。

不带世纪数位(yy)

带世纪数位(yyyy)

标准

输入/输出**

-

0或100(*)

默认值

monddyyyyhh:

miAM(或PM)

1

101

美国

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

3

103

英国/法国

dd/mm/yy

4

104

德国

dd.mm.yy

5

105

意大利

dd-mm-yy

6

106

-

ddmonyy

7

107

-

mondd,yy

8

108

-

hh:

mm:

ss

-

9或109(*)

默认值+毫秒

monddyyyyhh:

mi:

ss:

mmmAM(或PM)

10

110

美国

mm-dd-yy

11

111

日本

yy/mm/dd

12

112

ISO

yymmdd

-

13或113(*)

欧洲默认值+毫秒

ddmonyyyyhh:

mm:

ss:

mmm(24h)

14

114

-

hh:

mi:

ss:

mmm(24h)

-

20或120(*)

ODBC规范

yyyy-mm-ddhh:

mm:

ss[.fff]

-

21或121(*)

ODBC规范(带毫秒)

yyyy-mm-ddhh:

mm:

ss[.fff]

-

126(***)

ISO8601

yyyy-mm-ddThh:

mm:

ss.mmm(不含空格)

-

130*

Hijri****

ddmonyyyyhh:

mi:

ss:

mmmAM

-

131*

Hijri****

dd/mm/yyhh:

mi:

ss:

mmmAM

*默认值(style0或100、9或109、13或113、20或120、21或121)始终返回世纪数位(yyyy)。

**当转换为datetime时输入;当转换为字符数据时输出。

***专门用于XML。

对于从datetime或smalldatetime到character数据的转换,输出格式如表中所示。

对于从float、money或smallmoney到character数据的转换,输出等同于style2。

对于从real到character数据的转换,输出等同于style1。

****Hijri是具有几种变化形式的日历系统,Microsoft®SQLServer™2000使用其中的科威特算法。

重要默认情况下,SQLServer根据截止年份2049解释两位数字的年份。

即,两位数字的年份49被解释为2049,而两位数字的年份50被解释为1950。

许多客户端应用程序(例如那些基于OLE自动化对象的客户端应用程序)都使用2030作为截止年份。

SQLServer提供一个配置选项("两位数字的截止年份"),借以更改SQLServer所使用的截止年份并对日期进行一致性处理。

然而最安全的办法是指定四位数字年份。

当从smalldatetime转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。

当从datetime或smalldatetime值进行转换时,可以通过使用适当的char或varchar数据类型长度来截断不需要的日期部分。

PS:

结合datediff()函数用来比较时间特别有用。

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

1.当前系统日期、时间

selectgetdate()

2.dateadd在向指定日期加上一段时间的基础上,返回新的datetime值

例如:

向日期加上2天

selectdateadd(day,2,'2004-10-15')--返回:

2004-10-1700:

00:

00.000

3.datediff返回跨两个指定日期的日期和时间边界数。

selectdatediff(day,'2004-09-01','2004-09-18')--返回:

17

4.datepart返回代表指定日期的指定日期部分的整数。

SELECTDATEPART(month,'2004-10-15')--返回10

5.datename返回代表指定日期的指定日期部分的字符串

SELECTdatename(weekday,'2004-10-15')--返回:

星期五

6.day(),month(),year()--可以与datepart对照一下

select当前日期=convert(varchar(10),getdate(),120)

当前时间=convert(varchar(8),getdate(),114)

selectdatename(dw,'2004-10-15')

select本年第多少周=datename(week,'2004-10-15')

今天是周几=datename(weekday,'2004-10-15')

函数参数/功能

GetDate()返回系统目前的日期与时间

DateDiff(interval,date1,date2)

以interval指定的方式,返回date2与date1两个日期之间的差值date2-date1

DateAdd(interval,number,date)以interval指定的方式,加上number之后的日期

DatePart(interval,date)返回日期date中,interval指定部分所对应的整数值

DateName(interval,date)返回日期date中,interval指定部分所对应的字符串名称

参数interval的设定值如下:

值缩写(SqlServer)Access和ASP说明

YearYyyyyy年1753~9999

QuarterQqq季1~4

MonthMmm月1~12

DayofyearDyy一年的日数,一年中的第几日1-366

DayDdd日,1-31

WeekdayDww一周的日数,一周中的第几日1-7

WeekWkww周,一年中的第几周0~51

HourHhh时0~23

MinuteMin分钟0~59

SecondSss秒0~59

MillisecondMs-毫秒0~999

access和asp中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似

举例:

1.GetDate()用于sqlserver:

selectGetDate()

2.DateDiff('s','2005-07-20','2005-7-2522:

56:

32')返回值为514592秒

DateDiff('d','2005-07-20','2005-7-2522:

56:

32')返回值为5天

3.DatePart('w','2005-7-2522:

56:

32')返回值为2即星期一(周日为1,周六为7)

DatePart('d','2005-7-2522:

56:

32')返回值为25即25号

DatePart('y','2005-7-2522:

56:

32')返回值为206即这一年中第206天

DatePart('yyyy','2005-7-2522:

56:

32')返回值为2005即2005年

SQLServerDATEPART()函数返回SQLServerdatetime字段的一部分。

SQLServerDATEPART()函数的语法是:

DATEPART(portion,datetime)

其中datetime是SQLServerdatetime字段和部分的名称是下列之一:

MsforMilliseconds

YyforYear

QqforQuarteroftheYear

MmforMonth

DyfortheDayoftheYear

DdforDayoftheMonth

WkforWeek

DwfortheDayoftheWeek

HhforHour

MiforMinute

SsforSecond

详细的说明:

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。

你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!

在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。

在使用本文中的例子之前,你必须注意以下的问题。

大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。

第一天(DA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1