CONVERT(data_type,expression[,style])
convert(varchar(10),字段名,转换格式)
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
语句 结果
SELECT CONVERT(varchar(100),GETDATE(),0) 07 15 2009 4:06PM
SELECT CONVERT(varchar(100),1) 07/15/09
SELECT CONVERT(varchar(100),2) 09.07.15
SELECT CONVERT(varchar(100),3) 15/07/09
SELECT CONVERT(varchar(100),4) 15.07.09
SELECT CONVERT(varchar(100),5) 15-07-09
SELECT CONVERT(varchar(100),6) 15 07 09
SELECT CONVERT(varchar(100),7) 07 15,09
SELECT CONVERT(varchar(100),8) 16:06:26
SELECT CONVERT(varchar(100),9) 07 15 2009 4:06:26:513PM
SELECT CONVERT(varchar(100),10) 07-15-09
SELECT CONVERT(varchar(100),11) 09/07/15
SELECT CONVERT(varchar(100),12) 090715
SELECT CONVERT(varchar(100),13) 15 07 2009 16:06:26:513
SELECT CONVERT(varchar(100),14) 16:06:26:513
SELECT CONVERT(varchar(100),20) 2009-07-15 16:06:26
SELECT CONVERT(varchar(100),21) 2009-07-15 16:06:26.513
SELECT CONVERT(varchar(100),22) 07/15/09 4:06:26 PM
SELECT CONVERT(varchar(100),23) 2009-07-15
SELECT CONVERT(varchar(100),24) 16:06:26
SELECT CONVERT(varchar(100),25) 2009-07-15 16:06:26.513
SELECT CONVERT(varchar(100),100) 07 15 2009 4:06PM
SELECT CONVERT(varchar(100),101) 07/15/2009
SELECT CONVERT(varchar(100),102) 2009.07.15
SELECT CONVERT(varchar(100),103) 15/07/2009
SELECT CONVERT(varchar(100),104) 15.07.2009
SELECT CONVERT(varchar(100),105) 15-07-2009
SELECT CONVERT(varchar(100),106) 15 07 2009
SELECT CONVERT(varchar(100),107) 07 15,2009
SELECT CONVERT(varchar(100),108) 16:06:26
SELECT CONVERT(varchar(100),109) 07 15 2009 4:06:26:513PM
SELECT CONVERT(varchar(100),110) 07-15-2009
SELECT CONVERT(varchar(100),111) 2009/07/15
SELECT CONVERT(varchar(100),112) 20090715
SELECT CONVERT(varchar(100),113) 15 07 2009 16:06:26:513
SELECT CONVERT(varchar(100),114) 16:06:26:513
SELECT CONVERT(varchar(100),120) 2009-07-15 16:06:26
SELECT CONVERT(varchar(100),121) 2009-07-15 16:06:26.513
SELECT CONVERT(varchar(100),126) 2009-07-15T16:06:26.513
SELECT CONVERT(varchar(100),130) 23 ??? 1430 4:06:26:513PM
SELECT CONVERT(varchar(100),131) 23/07/1430 4:06:26:513PM
Style(2位表示年份) | Style(4位表示年份) | 输入输出格式
------------------------------------------------------------------------------------------------------------
0 | 100 | mon dd yyyy hh:miAM(或PM)
------------------------------------------------------------------------------------------------------------
1 | 101 美国 | mm/dd/yy
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
3 | 103 英法 | dd/mm/yy
------------------------------------------------------------------------------------------------------------
4 | 104 德国 | dd.mm.yy
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
6 | 106 | dd mon yy
------------------------------------------------------------------------------------------------------------
7 | 107 | mon dd,yy
------------------------------------------------------------------------------------------------------------
8 | 108 | hh:mm:ss
------------------------------------------------------------------------------------------------------------
9 | 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
------------------------------------------------------------------------------------------------------------
10 | 110 美国 | mm-dd-yy
------------------------------------------------------------------------------------------------------------
11 | 111 日本 | yy/mm/dd
------------------------------------------------------------------------------------------------------------
12 | 112 ISO | yymmdd
------------------------------------------------------------------------------------------------------------
13 | 113 欧洲默认值 | dd mon yyyy hh:mi:ss:mmm(24小时制)
------------------------------------------------------------------------------------------------------------
14 | 114 | hh:mi:ss:mmm(24小时制)
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
21 | 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
------------------------------------------------------------------------------------------------------------
( data_type [ ( length ) ],expression [,style ] )
sql Server™ 表达式。。
包括 bigint 和 sql_variant。不能使用用户定义的数据类型。
length
sql Server 支持使用科威特算法的阿拉伯样式中的数据格式。
包括世纪数位的四位年份 (yyyy)。
输出** | |||
---|---|---|---|
** 当转换为 datetime时输入;当转换为字符数据时输出。
*** 专门用于 XML。对于从 datetime或 smalldatetime 到 character 数据的转换,输出格式如表中所示。对于从 float、money 或 smallmoney 到 character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style 1。
****Hijri 是具有几种变化形式的日历系统,Microsoft® sql Server™ 2000 使用其中的科威特算法。
默认情况下,sql Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。sql Server 提供一个配置选项("两位数字的截止年份"),借以更改 sql Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 char 或 varchar 数据类型长度来截断不需要的日期部分。
函数
-------------------------------------------------------------------------------------------------------------------------------------------
select getdate()
加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
select datediff(day,'2004-09-01','2004-09-18') --返回:17
SELECT DATEPART(month,'2004-10-15') --返回 10
SELECT datename(weekday,'2004-10-15') --返回:星期五
--可以与datepart对照一下
,当前时间=convert(varchar(8),114)
,今天是周几=datename(weekday,0); FONT-FAMILY: 宋体">函数 参数/功能
DateDiff (interval,date1,date2)
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
sql Server) Access 和 ASP 说明
Year 年 1753 ~ 9999
Quarter 季 1 ~ 4
Month 月1 ~ 12
Day of year 一年的日数,一年中的第几日 1-366
Day 日,1-31
Weekday 一周的日数,一周中的第几日 1-7
Week 周,一年中的第几周 0 ~ 51
Hour 时0 ~ 23
Minute 分钟0 ~ 59
Second 秒 0 ~ 59
Millisecond - 毫秒 0 ~ 999
函数的用法也类似
1.GetDate() 用于sql server :select GetDate()
DateDiff('d','2005-7-25 22:56:32')返回值为 5 天
DatePart('d','2005-7-25 22:56:32')返回值为 25即25号
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年
sql Server DATEPART() 函数返回 sqlServer datetime 字段的一部分。
sql Server DATEPART() 函数的语法是:
DATEPART(portion,datetime)
其中 datetime 是 sqlServer datetime 字段和部分的名称是下列之一: Ms for Milliseconds
Yy for Year
Qq for Quarter of the Year
Mm for Month
Dy for the Day of the Year
Dd for Day of the Month
Wk for Week
Dw for the Day of the Week
Hh for Hour
Mi for Minute
Ss for Second
函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和 DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。
在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你函数来检查第一天设置。
函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。 DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。
函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。
文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。
sql 脚本:
函数是getdate(),大部分人都知道这个是返回当前的日期和时间的函数。下一个执行的函数 DATEDIFF(mm,getdate())是计算当前日期和“1900-01-01 00:00:00.000”这个日期之间的月数。函数中指定下一个函数是DATEADD,增加当前日期到“1900-01-01”的月数。通过增加预定义的日期“1900-01-01”和当前日期的月数,我们可以获得这个月的第一天。另外,计算出来的日期的时间部分将会是“00:00:00.000”。
显示这一年的第一天。
函数为了返回时间值截掉时间部分,就会考虑到当前日期是不是在半夜。假如这样,这个例子使用DATEDIFF和DATEADD函数来获得半夜的时间点。
函数计算
函数计算,你可以发现很多不同的可能有意义的日期。
数量,然后把它加到“1900-01-01”的时间间隔上来计算出日期。假定你修改时间间隔的数量,或者使用不同的时间间隔来调用DATEADD函数,或者减去时间间隔而不是增加,那么通过这些小的调整你可以发现和多不同的日期。
函数来计算最后一天来分别替换DATEADD函数前后两个时间间隔。
sql Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。
sql Server可以记录的一天的最后时刻(“23:59:59:997”)的时间。
修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的sql脚本。
原文链接:https://www.f2er.com/mssql/64258.html