Sql中的Convert转换

2007-01-17 01:07:58 | 作者: BonBon
字体大小: | |
晚上小白和我说在上一篇 C#函数收集中,98fz在回复中提供的取小时的方法很不错.备忘备忘...
select convert(varchar(2),getdate(),108)
取小时方法

convert(varchar(2),getdate(),108)意思就是返回输出格式为hh:mi:ss的前2位,也就是hh

select left(right(convert(varchar(20),getdate(),120),5),2)
取分钟的方法

120是ODBC规范,返回的格式是:yyyy-mm-dd hh:mi:ss(24h)。然后用right(express,5)取得mi:ss
最后再用left(express,2)取得mi

CONVERT和CAST提供了相似的功能,将一种数据类型的表达式显式转换为另一种数据类型的表达式。
语法:
Syntax for CAST:
CAST ( expression AS data_type [ (length ) ])

Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
参数:
expression
任何有效的表达式。

data_type
作为目标的系统提供数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型。

length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。对于 CONVERT,如果未指定 length,则默认为 30 个字符。

style
数据格式的样式,用于将 datetime 或 smalldatetime 数据转换成字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型),或将已知日期或时间格式的字符数据转换成 datetime 或 smalldatetime 数据;或者是字符串格式,用于将 float、real、money 或 smallmoney 数据转换成字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。如果 style 为 NULL,则返回的结果也为 NULL。

SQL Server 通过使用科威特算法来支持阿拉伯样式的日期格式。

在下表中,左侧的两列表示将 datetime 或 smalldatetime 数据转换为字符数据的 style 值。将 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。

uploads/200701/17_003933_convert.gif

1 这些样式值将返回不确定的结果。包括所有 (yy)(不带世纪数位)样式和一部分 (yyyy)(带世纪数位)样式。

2. 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120 以及 21 或 121)始终返回世纪数位 (yyyy)。

3 转换为 datetime 时输入;转换为字符数据时输出。

4 为用于 XML 而设计。对于从 datetime 或 smalldatetime 到字符数据的转换,其输出格式如上一个表所述。

5. 回历是有多种变体的日历系统。SQL Server 2005 使用科威特算法。

默认情况下,SQL Server 基于截止年份 2049 年来解释两位数的年份。换言之,就是将两位数的年份 49 解释为 2049,将两位数的年份 50 解释为 1950。许多客户端应用程序(如基于自动化对象的应用程序)都使用截止年份 2030 年。SQL Server 提供了“两位数年份截止”配置选项,可通过此选项更改 SQL Server 使用的截止年份,从而对日期进行一致处理。建议您指定四位数年份。

6. 仅支持从字符数据转换为 datetime 或 smalldatetime。仅表示日期或时间成分的字符数据转换为 datetime 或 smalldatetime 数据类型时,未指定的时间成分设置为 00:00:00.000,未指定的日期成分设置为 1900-01-01。

7使用可选的时间区域指示符 (Z) 更便于将具有时区信息的 XML datetime 值映射到没有时区的 SQL Server datetime 值。Z 是时区 UTC-0 的指示符。其他时区则以 + 或 – 方向的 HH:MM 偏移量来指示。例如: 2006-12-12T23:45:12-08:00.

从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。使用相应的 char 或 varchar 数据类型长度从 datetime 或 smalldatetime 值转换时,可截断不需要的日期部分。

具体查看 MSDN–>T-SQL–>CONVERT

[最后编辑于 BonBon, at 2007-04-27 11:41:43]

版权声明:本文为sunmoonstarash原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sunmoonstarash/articles/740448.html