`

SQL Server CONVERT函数

 
阅读更多

本文转载自:http://weishang-java.iteye.com/blog/649631

 

格式:
CONVERT(data_type,expression[,style])

说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.

例子:
SELECT CONVERT(varchar(30),getdate(),101) now
结果为:
now
---------------------------------------
|09/15/2001

===================================================================

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

------------------------------------------------------------------------------------------------------------
Style(2位表示年份)   | Style(4位表示年份)   |   输入输出格式                                    
------------------------------------------------------------------------------------------------------------
0                               | 100                           |   mon dd yyyy hh:miAM(或PM)              
------------------------------------------------------------------------------------------------------------
1                               | 101   美国                |   mm/dd/yy                                       
------------------------------------------------------------------------------------------------------------
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: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小时制)                    
------------------------------------------------------------------------------------------------------------
20                             | 120     ODBC 规范     |    yyyy-mm-dd hh:mi:ss(24小时制)         
------------------------------------------------------------------------------------------------------------
21                             |   121                           |    yyyy-mm-dd hh:mi:ss:mmm(24小时制) 
------------------------------------------------------------------------------------------------------------

语句及查询结果:
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 数据类型长度来截断不需要的日期部分。

分享到:
评论

相关推荐

    SQL中CONVERT转化函数的用法

    SQL中CONVERT转化函数的用法

    sqlserver自定义函数

    在SQL Server中,自定义函数(User-Defined Function, UDF)允许开发人员创建自己的可重用代码块,用于执行特定任务。以下是一些在SQL Server中创建和使用自定义函数的例子: 1. 计算当前月实际天数的函数(dbo....

    SQLSERVER时间函数汇总

    这篇博客“SQLSERVER时间函数汇总”深入探讨了SQL Server中的时间函数,提供了丰富的知识资源。 首先,我们要理解SQL Server中的日期和时间数据类型,包括DATE、TIME、DATETIME2、SMALLDATETIME、DATETIMEOFFSET等...

    SQLserver中用convert函数转换日期格式的方法

    本篇文章将深入探讨如何在SQL Server中使用`CONVERT`函数来转换日期格式。 首先,SQL Server的默认日期时间格式是`yyyy-mm-dd Thh:mm:ss.mmm`,如`2003-12-28 16:52:00.107`所示。这个格式符合ISO 8601标准,但并不...

    SQLServer CONVERT 函数测试结果

    在SQL Server中,`CONVERT`函数是一个非常重要的日期和时间转换函数,它允许我们将日期和时间数据格式化为各种不同的样式。此函数的主要用途是将日期和时间数据类型转换为字符串,以便于显示或处理。在提供的描述和...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    27.SQL Server 2014 CONVERT函数.mp4 28.SQL Server 2014 DATEDIFF函数.mp4 29.SQL Server 2014 DATEPART函数.mp4 3.SQL Server 2014数据库安装.mp4 30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014...

    SQL Server2000函数大全

    在SQL Server 2000中,函数是执行特定计算或操作的重要组成部分,它们能够帮助数据库管理员和开发人员处理和转换数据。以下是一些主要的SQL Server 2000函数类别及其详细说明: 1. **数值函数**: - `ABS()`: 返回...

    SQLServer2000函数大全<绝对经典>

    这个"SQLServer2000函数大全"资源对于熟悉和精通SQL Server 2000的函数使用至关重要,无论你是初学者还是经验丰富的开发者,都能从中受益。通过深入学习和实践,你可以更加熟练地进行数据查询、处理和分析,提升...

    sql server常用函数大全下载

    本资源"SQLServer2005常用函数大全及个人毕生收藏.CHM"是一个关于SQL Server 2005常用函数的集合,对于SQL Server的开发者和管理员来说,无疑是一份宝贵的参考资料。 首先,我们来看看SQL Server中的主要函数类型:...

    SQL Server 2014基础入门视频教程 (40集,含课件)

    27.SQL Server 2014 CONVERT函数.mp4 28.SQL Server 2014 DATEDIFF函数.mp4 29.SQL Server 2014 DATEPART函数.mp4 30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server ...

    sqlserver 函数大全

    "SQL Server 函数大全" SQL Server 函数大全是 SQL Server 中一个强大的功能,提供了多种函数来处理和操作数据。这些函数可以分为多个类别,包括聚合函数、配置函数、转换函数、加密函数、游标函数、日期和时间...

    sqlserver函数案例

    在SQL Server中,函数是处理数据的关键工具,用于执行各种计算、转换和操作。本篇文章主要探讨了SQL Server中的一些重要函数,特别是涉及到日期和字符串处理的函数。 首先,我们来看日期函数。在SQL Server中,日期...

    sqlserver常用函数及个人收藏

    在SQL Server数据库管理系统中,函数是执行特定计算或操作的重要工具。这些函数广泛应用于数据查询、分析和处理,使得数据库管理员和开发人员能够更高效地处理数据。以下是一些SQL Server中常用的函数及其详细说明:...

    SQLServer2005函数大全

    - `DATE_FORMAT()`:虽然在SQL Server 2005中不存在此函数,但可以使用`CONVERT()`函数配合样式代码来格式化日期输出。 3. **数学函数**: - `ABS()`:返回数值的绝对值。 - `SQRT()`:计算平方根。 - `POWER()...

    SQL_SERVER日期函数详细用法

    SQL Server 日期函数详细用法 SQL Server 提供了多种日期函数,用于处理日期和时间数据。下面将详细介绍这些函数的用法。 1. GETDATE() 函数 GETDATE() 函数用于获取当前日期和时间。该函数返回当前服务器的日期...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程.txt

    27.SQL Server 2014 CONVERT函数.mp4 28.SQL Server 2014 DATEDIFF函数.mp4 29.SQL Server 2014 DATEPART函数.mp4 3.SQL Server 2014数据库安装.mp4 30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014...

    SQLServer2000常用函数大全(经典)

    在SQL Server 2000中,函数是执行特定计算或操作的重要工具,它们极大地丰富了SQL语言的功能,使得数据库管理、数据查询和...所以,这个“SQLServer2000常用函数大全(经典)”的资源对于学习和提升SQL技能是非常宝贵的。

    Sql Server 的语句函数大全

    在SQL Server数据库管理系统中,函数是执行特定计算或操作的核心元素。它们极大地丰富了SQL语言,使得查询和处理数据变得更加灵活高效。以下是对"Sql Server的语句函数大全"的详细解析: 1. **数值函数**: - `ABS...

    sqlserver函数大全

    SQL Server函数大全是一份详尽的参考资料,涵盖了在SQL Server数据库管理系统中常用的各种函数。SQL Server作为企业级的关系型数据库管理系统,提供了丰富的内置函数来帮助用户处理数据查询、计算、转换等各种任务。...

Global site tag (gtag.js) - Google Analytics