⑴ sql日期格式化
sql server中使用convert来取得datetime数据类型样式(全)
日期数据格式的处理,两个示例:
CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/
CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/
语句及查询结果:
SelectCONVERT(varchar(100),GETDATE(),0)--0516200610:57AM
SelectCONVERT(varchar(100),GETDATE(),1)--05/16/06
SelectCONVERT(varchar(100),GETDATE(),2)--06.05.16
SelectCONVERT(varchar(100),GETDATE(),3)--16/05/06
SelectCONVERT(varchar(100),GETDATE(),4)--16.05.06
SelectCONVERT(varchar(100),GETDATE(),5)--16-05-06
SelectCONVERT(varchar(100),GETDATE(),6)--160506
SelectCONVERT(varchar(100),GETDATE(),7)--0516,06
SelectCONVERT(varchar(100),GETDATE(),8)--10:57:46
SelectCONVERT(varchar(100),GETDATE(),9)--0516200610:57:46:827AM
SelectCONVERT(varchar(100),GETDATE(),10)--05-16-06
SelectCONVERT(varchar(100),GETDATE(),11)--06/05/16
SelectCONVERT(varchar(100),GETDATE(),12)--060516
SelectCONVERT(varchar(100),GETDATE(),13)--1605200610:57:46:937
SelectCONVERT(varchar(100),GETDATE(),14)--10:57:46:967
SelectCONVERT(varchar(100),GETDATE(),20)--2006-05-1610:57:47
SelectCONVERT(varchar(100),GETDATE(),21)--2006-05-1610:57:47.157
SelectCONVERT(varchar(100),GETDATE(),22)--05/16/0610:57:47AM
SelectCONVERT(varchar(100),GETDATE(),23)--2006-05-16
SelectCONVERT(varchar(100),GETDATE(),24)--10:57:47
SelectCONVERT(varchar(100),GETDATE(),25)--2006-05-1610:57:47.250
SelectCONVERT(varchar(100),GETDATE(),100)--0516200610:57AM
SelectCONVERT(varchar(100),GETDATE(),101)--05/16/2006
SelectCONVERT(varchar(100),GETDATE(),102)--2006.05.16
SelectCONVERT(varchar(100),GETDATE(),103)--16/05/2006
SelectCONVERT(varchar(100),GETDATE(),104)--16.05.2006
SelectCONVERT(varchar(100),GETDATE(),105)--16-05-2006
SelectCONVERT(varchar(100),GETDATE(),106)--16052006
SelectCONVERT(varchar(100),GETDATE(),107)--0516,2006
SelectCONVERT(varchar(100),GETDATE(),108)--10:57:49
SelectCONVERT(varchar(100),GETDATE(),109)--0516200610:57:49:437AM
SelectCONVERT(varchar(100),GETDATE(),110)--05-16-2006
SelectCONVERT(varchar(100),GETDATE(),111)--2006/05/16
SelectCONVERT(varchar(100),GETDATE(),112)--20060516
SelectCONVERT(varchar(100),GETDATE(),113)--1605200610:57:49:513
SelectCONVERT(varchar(100),GETDATE(),114)--10:57:49:547
SelectCONVERT(varchar(100),GETDATE(),120)--2006-05-1610:57:49
SelectCONVERT(varchar(100),GETDATE(),121)--2006-05-1610:57:49.700
SelectCONVERT(varchar(100),GETDATE(),126)--2006-05-16T10:57:49.827
SelectCONVERT(varchar(100),GETDATE(),130)--18??????????142710:57:49:907AM
SelectCONVERT(varchar(100),GETDATE(),131)--18/04/142710:57:49:920AM
说明:
使用 CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
参数
expression
是任何有效的 Microsoft® SQL Server™ 表达式。。
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 数据类型)。
SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。
不带世纪数位 (yy) 带世纪数位 (yyyy)
标准
输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh: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 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(不含空格)
- 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM
- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM
* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (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 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 char 或 varchar 数据类型长度来截断不需要的日期部分。
⑵ 如何在 SQL Server中 将日期格式化
SQLServer中将日期格式化:
CONVERTSQLServer中将日期格式化2008年12月22日星期一16:39CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。由于某些需求经常用到取日期格式的不同.现以下可在
SQLServer中将日期格式化.
SQLServer支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将datetime或smalldatetime转换为字符数据的style值。给style值加
100,可获得包括世纪数位的四位年份(yyyy)。
不带世纪数位(yy)带世纪数位(yyyy)
标准
输入/输出**
-0或100(*)默认值monddyyyyhh:miAM(或PM)
1101美国mm/dd/yyyy
2102ANSIyy.mm.dd
3103英国/法国dd/mm/yy
4104德国dd.mm.yy
5105意大利dd-mm-yy
6106-ddmonyy
7107-mondd,yy
8108-hh:mm:ss
-9或109(*)默认值+毫秒monddyyyyhh:mi:ss:mmmAM(或PM)
10110美国mm-dd-yy
11111日本yy/mm/dd
12112ISOyymmdd
-13或113(*)欧洲默认值+毫秒ddmonyyyyhh:mm:ss:mmm(24h)
14114-hh:mi:ss:mmm(24h)
-20或120(*)ODBC规范yyyy-mm-ddhh:mm:ss[.fff]
-21或121(*)ODBC规范(带毫秒)yyyy-mm-ddhh:mm:ss[.fff]
-126(***)ISO8601yyyy-mm-ddThh:mm:ss:mmm(不含空格)
-130*科威特ddmonyyyyhh:mi:ss:mmmAM
-131*科威特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。
重要默认情况下,SQLServer根据截止年份2049解释两位数字的年份。即,两位数字的年份49被解释为2049,而两位数字的年份
50被解释为1950。许多客户端应用程序(例如那些基于OLE自动化对象的客户端应用程序)都使用2030作为截止年份。SQLServer
提供一个配置选项("两位数字的截止年份"),借以更改SQLServer
所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
当从smalldatetime转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从datetime或smalldatetime
值进行转换时,可以通过使用适当的char或varchar数据类型长度来截断不需要的日期部分。
下表显示了从float或real转换为字符数据时的style值。
值输出
0(默认值)最大为6位数。根据需要使用科学记数法。
1始终为8位值。始终使用科学记数法。
2始终为16位值。始终使用科学记数法。
在下表中,左列表示从money或smallmoney转换为字符数据时的style值。
值输出
0(默认值)小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如4235.98。
1小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如3,510.92。
2小数点左侧每三位数字之间不以逗号分隔,小数点右侧取四位数,例如4235.9819。
使用CONVERT:
CONVERT(data_type[(length)],expression[,style])
selectCONVERT(varchar,getdate(),120)
2004-09-1211:06:08
selectreplace(replace(replace(CONVERT(varchar,getdate(),120
),'-',''),'',''),':','')
20040912110608
selectCONVERT(varchar(12),getdate(),111)
2004/09/12
selectCONVERT(varchar(12),getdate(),112)
20040912
selectCONVERT(varchar(12),getdate(),102)
2004.09.12
selectCONVERT(varchar(12),getdate(),101)
09/12/2004
selectCONVERT(varchar(12),getdate(),103)
12/09/2004
selectCONVERT(varchar(12),getdate(),104)
12.09.2004
selectCONVERT(varchar(12),getdate(),105)
12-09-2004
selectCONVERT(varchar(12),getdate(),106)
12092004
selectCONVERT(varchar(12),getdate(),107)
0912,2004
selectCONVERT(varchar(12),getdate(),108)
11:06:08
selectCONVERT(varchar(12),getdate(),109)
091220041
selectCONVERT(varchar(12),getdate(),110)
09-12-2004
selectCONVERT(varchar(12),getdate(),113)
120920041
selectCONVERT(varchar(12),getdate(),114)
11:06:08.177
SELECTCONVERT(varchar(100),GETDATE(),0):0516200610:57AM
SELECTCONVERT(varchar(100),GETDATE(),1):05/16/06
SELECTCONVERT(varchar(100),GETDATE(),2):06.05.16
SELECTCONVERT(varchar(100),GETDATE(),3):16/05/06
SELECTCONVERT(varchar(100),GETDATE(),4):16.05.06
SELECTCONVERT(varchar(100),GETDATE(),5):16-05-06
SELECTCONVERT(varchar(100),GETDATE(),6):160506
SELECTCONVERT(varchar(100),GETDATE(),7):0516,06
SELECTCONVERT(varchar(100),GETDATE(),8):10:57:46
SELECTCONVERT(varchar(100),GETDATE(),9):0516200610:57:46:827AM
SELECTCONVERT(varchar(100),GETDATE(),10):05-16-06
SELECTCONVERT(varchar(100),GETDATE(),11):06/05/16
SELECTCONVERT(varchar(100),GETDATE(),12):060516
SELECTCONVERT(varchar(100),GETDATE(),13):1605200610:57:46:937
SELECTCONVERT(varchar(100),GETDATE(),14):10:57:46:967
SELECTCONVERT(varchar(100),GETDATE(),20):2006-05-1610:57:47
SELECTCONVERT(varchar(100),GETDATE(),21):2006-05-1610:57:47.157
SELECTCONVERT(varchar(100),GETDATE(),22):05/16/0610:57:47AM
SELECTCONVERT(varchar(100),GETDATE(),23):2006-05-16
SELECTCONVERT(varchar(100),GETDATE(),24):10:57:47
SELECTCONVERT(varchar(100),GETDATE(),25):2006-05-1610:57:47.250
SELECTCONVERT(varchar(100),GETDATE(),100):0516200610:57AM
SELECTCONVERT(varchar(100),GETDATE(),101):05/16/2006
SELECTCONVERT(varchar(100),GETDATE(),102):2006.05.16
SELECTCONVERT(varchar(100),GETDATE(),103):16/05/2006
SELECTCONVERT(varchar(100),GETDATE(),104):16.05.2006
SELECTCONVERT(varchar(100),GETDATE(),105):16-05-2006
SELECTCONVERT(varchar(100),GETDATE(),106):16052006
SELECTCONVERT(varchar(100),GETDATE(),107):0516,2006
SELECTCONVERT(varchar(100),GETDATE(),108):10:57:49
SELECTCONVERT(varchar(100),GETDATE(),109):0516200610:57:49:437AM
SELECTCONVERT(varchar(100),GETDATE(),110):05-16-2006
SELECTCONVERT(varchar(100),GETDATE(),111):2006/05/16
SELECTCONVERT(varchar(100),GETDATE(),112):20060516
SELECTCONVERT(varchar(100),GETDATE(),113):1605200610:57:49:513
SELECTCONVERT(varchar(100),GETDATE(),114):10:57:49:547
SELECTCONVERT(varchar(100),GETDATE(),120):2006-05-1610:57:49
SELECTCONVERT(varchar(100),GETDATE(),121):2006-05-1610:57:49.700
SELECTCONVERT(varchar(100),GETDATE(),126):2006-05-16T10:57:49.827
SELECTCONVERT(varchar(100),GETDATE(),130):18??????????1427
10:57:49:907AM
SELECTCONVERT(varchar(100),GETDATE(),131):18/04/142710:57:49:920AM
⑶ sql 日期格式转换
1、首先点击顶部菜单的【新建查询】,打开一个SQL输入窗口。
2、将当前日期格式化为【年-月-日】格式,SelectCONVERT(varchar(100),GETDATE(),23)。
3、将当前时间格式化为【时:分:秒】格式,SelectCONVERT(varchar(100),GETDATE(),8)。
4、将当前日期时间格式化为【年-月-日时:分:秒】格式,SelectCONVERT(varchar(100),GETDATE(),20)。
5、将当前日期格式化为【日-月-年】格式,SelectCONVERT(varchar(100),GETDATE(),105)。
6、将当前日期格式化为【年/月/日】格式,SelectCONVERT(varchar(100),GETDATE(),111)。完成效果图。
⑷ sql怎么把年月日日期转成年月格式。
1. DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
DATE_FORMAT(date,format)
例子:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
输出结果:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46
⑸ SQL数据库中怎么将时间格式转换到年和月
Year(@time), Month(@time) 2 个函数即可。
然后用它们来组装字符串也就简单了。CONVERT(VarChar(7), @time, 120)会得到YYYY-MM。调用。
用转成字符串,,但此时他已经不是时间类型。
CONVERT(char(7),"你的时间例",120)