sql日期格式化

 我来答
Baby_原來
2016-01-12 · TA获得超过3402个赞
知道大有可为答主
回答量:1535
采纳率:94%
帮助的人:513万
展开全部

sql server中使用convert来取得datetime数据类型样式(全)

日期数据格式的处理,两个示例:

CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/

CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/


语句及查询结果:

Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1)-- 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2)-- 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3)-- 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4)-- 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5)-- 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6)-- 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7)-- 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8)-- 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9)-- 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10)-- 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11)-- 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12)-- 060516
Select CONVERT(varchar(100), GETDATE(), 13)-- 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14)-- 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20)-- 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21)-- 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22)-- 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23)-- 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24)-- 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25)-- 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100)-- 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101)-- 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102)-- 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103)-- 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104)-- 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105)-- 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106)-- 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107)-- 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108)-- 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109)-- 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110)-- 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111)-- 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112)-- 20060516
Select CONVERT(varchar(100), GETDATE(), 113)-- 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114)-- 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120)-- 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121)-- 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126)-- 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130)-- 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131)-- 18/04/1427 10: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 数据类型长度来截断不需要的日期部分。

wangzhiqing999
推荐于2018-03-12 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3404万
展开全部
如果是 SQL Server
执行一下如下的 SQL 语句, 就会清楚了

SELECT 0 AS ID , Convert(VARCHAR(30), GETDATE(), 0 ) AS result UNION ALL
SELECT 100 AS ID , Convert(VARCHAR(30), GETDATE(), 100) AS result UNION ALL
SELECT 1 AS ID , Convert(VARCHAR(30), GETDATE(), 1 ) AS result UNION ALL
SELECT 101 AS ID , Convert(VARCHAR(30), GETDATE(), 101) AS result UNION ALL
SELECT 2 AS ID , Convert(VARCHAR(30), GETDATE(), 2 ) AS result UNION ALL
SELECT 102 AS ID , Convert(VARCHAR(30), GETDATE(), 102) AS result UNION ALL
SELECT 2 AS ID , Convert(VARCHAR(30), GETDATE(), 2 ) AS result UNION ALL
SELECT 102 AS ID , Convert(VARCHAR(30), GETDATE(), 102) AS result UNION ALL
SELECT 3 AS ID , Convert(VARCHAR(30), GETDATE(), 3 ) AS result UNION ALL
SELECT 103 AS ID , Convert(VARCHAR(30), GETDATE(), 103) AS result UNION ALL
SELECT 4 AS ID , Convert(VARCHAR(30), GETDATE(), 4 ) AS result UNION ALL
SELECT 104 AS ID , Convert(VARCHAR(30), GETDATE(), 104) AS result UNION ALL
SELECT 5 AS ID , Convert(VARCHAR(30), GETDATE(), 5 ) AS result UNION ALL
SELECT 105 AS ID , Convert(VARCHAR(30), GETDATE(), 105) AS result UNION ALL
SELECT 6 AS ID , Convert(VARCHAR(30), GETDATE(), 6 ) AS result UNION ALL
SELECT 106 AS ID , Convert(VARCHAR(30), GETDATE(), 106) AS result UNION ALL
SELECT 7 AS ID , Convert(VARCHAR(30), GETDATE(), 7 ) AS result UNION ALL
SELECT 107 AS ID , Convert(VARCHAR(30), GETDATE(), 107) AS result UNION ALL
SELECT 8 AS ID , Convert(VARCHAR(30), GETDATE(), 8 ) AS result UNION ALL
SELECT 108 AS ID , Convert(VARCHAR(30), GETDATE(), 108) AS result UNION ALL
SELECT 9 AS ID , Convert(VARCHAR(30), GETDATE(), 9 ) AS result UNION ALL
SELECT 109 AS ID , Convert(VARCHAR(30), GETDATE(), 109) AS result UNION ALL
SELECT 10 AS ID , Convert(VARCHAR(30), GETDATE(), 10 ) AS result UNION ALL
SELECT 110 AS ID , Convert(VARCHAR(30), GETDATE(), 110) AS result UNION ALL
SELECT 11 AS ID , Convert(VARCHAR(30), GETDATE(), 11 ) AS result UNION ALL
SELECT 111 AS ID , Convert(VARCHAR(30), GETDATE(), 111) AS result UNION ALL
SELECT 12 AS ID , Convert(VARCHAR(30), GETDATE(), 12 ) AS result UNION ALL
SELECT 112 AS ID , Convert(VARCHAR(30), GETDATE(), 112) AS result UNION ALL
SELECT 13 AS ID , Convert(VARCHAR(30), GETDATE(), 13 ) AS result UNION ALL
SELECT 113 AS ID , Convert(VARCHAR(30), GETDATE(), 113) AS result UNION ALL
SELECT 14 AS ID , Convert(VARCHAR(30), GETDATE(), 14 ) AS result UNION ALL
SELECT 114 AS ID , Convert(VARCHAR(30), GETDATE(), 114) AS result UNION ALL
SELECT 20 AS ID , Convert(VARCHAR(30), GETDATE(), 20 ) AS result UNION ALL
SELECT 120 AS ID , Convert(VARCHAR(30), GETDATE(), 120) AS result UNION ALL
SELECT 21 AS ID , Convert(VARCHAR(30), GETDATE(), 21 ) AS result UNION ALL
SELECT 121 AS ID , Convert(VARCHAR(30), GETDATE(), 121) AS result
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apu510064
推荐于2017-09-26 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:935万
展开全部
带世纪数位 (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* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

如:Convert(datetime,120)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式