您的位置:首页 > 数据库

SQL中CONVERT转化函数的用法

2008-07-24 14:32 281 查看
CONVERT的使用方法:

////////////////////////////////////////////////////////////////////////////////////////

格式:

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 or 100 | mon dd yyyy hh:miAM(或PM)

-------------------------------------------------------------------------------------------------

1 | 101 | mm/dd/yy

-------------------------------------------------------------------------------------------------

2 | 102 | 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 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)

-------------------------------------------------------------------------------------------------

10 | 110 | mm-dd-yy

-------------------------------------------------------------------------------------------------

11 | 111 | yy/mm/dd

-------------------------------------------------------------------------------------------------

12 | 112 | yymmdd

-------------------------------------------------------------------------------------------------

- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制)

-------------------------------------------------------------------------------------------------

14 | 114 | hh:mi:ss:mmm(24小时制)

-------------------------------------------------------------------------------------------------

- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制)

-------------------------------------------------------------------------------------------------

- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制)

-------------------------------------------------------------------------------------------------

在SQL中使用convert 函数进行日期的查询

曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm:ss,而我们查询时是通过yyyy-mm-dd来进行的,即查询某一天的所有会议信息,这样如果通过select * from Meeting where PublishTime=@PublishTime (参数@PublishTime为yyyy-mm-dd格式)语句进行查询将无法得到正确结果,比如我们要查询2004年12月1日的会议信息,在输入2004-12-01时就不能得到查询结果,而这种查询又不能要求输入具体的hh:mm:ss.

此时我们需要使用convert函数,它可以将一种数据类型的表达式转换为另一种数据类型的表达式.此处我们先将数据库内的datetime类型转换为char类型,由于输入的参数是10位的,所以写成

select * from Meeting where convert(varchar(10),PublishTime,121))=@PublishTime,这样在查询时数据库得到参数后先自动将数据库内的信息转换为yyyy-mm-dd格式的10位字符,只要与参数相同即可返回查询结果.而convert中的121是指将datetime类型转换为char类型时获得包括世纪位数的4位年份。

或者用CONVERT(DATETIME, PublishTime, 112)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: