详细讲解CAST和CONVERT提供的相关功能

ZDNet软件频道 时间:2009-12-03 作者: | 赛迪网 我要评论()
本文关键词:Server 服务器 SQL
【赛迪网-IT技术报道】CAST 和 CONVERT 提供的功能:将某种数据类型的表达式显式转换为另一种数据类型。SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。/*== 这是很多人经常犯的错误,对非日期型转换使用日期的style样式 ==*/

  【赛迪网-IT技术报道】CAST 和 CONVERT 提供的功能:将某种数据类型的表达式显式转换为另一种数据类型。

  语法:

  使用 CAST:

  CAST ( expression AS data_type )

  使用 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)。

  以上内容是到SQL帮助中复制下来的,但是要注意个情况,但CONVERT对日期进行转换时,注意style的用法,看以下有什么不同:

  --字符转换为日期时,Style的使用

  --1. Style=101时,表示日期字符串为:mm/dd/yyyy格式

  SELECT CONVERT(datetime,'11/1/2003',101)

  --结果:2003-11-01 00:00:00.000

  --2. Style=101时,表示日期字符串为:dd/mm/yyyy格式

  SELECT CONVERT(datetime,'11/1/2003',103)

  --结果:2003-01-11 00:00:00.000

  /*== 日期转换为字符串 ==*/

  DECLARE @dt datetime

  SET @dt='2003-1-11'

  --1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式

  SELECT CONVERT(varchar,@dt,101)

  --结果:01/11/2003

  --2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式

  SELECT CONVERT(varchar,@dt,103)

  --结果:11/01/2003

  /*== 这是很多人经常犯的错误,对非日期型转换使用日期的style样式 ==*/

  SELECT CONVERT(varchar,'2003-1-11' ,101)

  --结果:2003-1-11

  SELECT CONVERT(varchar,CAST('2003-1-11' AS DATETIME),101)

Server

服务器

SQL


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134