您的位置:首页 > 数据库

SQL中CONVERT转化函数的用法

2008-05-08 12:11 169 查看
CONVERT的使用方法:

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

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

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

例子:
SELECT CONVERT(varchar(30),getdate(),102) 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小时制)
-------------------------------------------------------------------------------------------------

SELECT replace(CONVERT(varchar(30),getdate(),102),'.','') now
SELECT replace(CONVERT(varchar(30),getdate(),108),':','') now

select replace(replace(replace(convert(char(19),getdate(),120),'-',''),':',''),' ','')
/*
------------------------
20070517154032
(所影响的行数为 1 行)
*/

getdate()返回是datetime型,需用convert函数转为字符型

select replace(convert(varchar(8),getdate(),108),':','')

IF EXISTS(SELECT NAME FROM sysobjects
WHERE NAME = N'funGetNewDate' )
DROP FUNCTION funGetNewDate
GO
CREATE FUNCTION funGetNewDate
(
@Date DATETIME
)
RETURNS NVARCHAR(10)
AS
BEGIN
DECLARE @Year INT
DECLARE@MonthINT
DECLARE@DayINT
DECLARE @NewDate NVARCHAR(10)
SET @Year= DATEPART( yyyy,@Date )
SET @Month= DATEPART( mm,@Date )
SET @Day= DATEPART( dd,@Date )
SELECT @NewDate = ( STR( @Year,4,0 )
+ N'-'
+ ( SELECT
CASE
WHEN @Month >= 10 THEN STR( @Month, 2, 0 )
WHEN @Month <10 THEN '0' + STR( @Month, 1, 0)
END
)
+ N'-'
+ ( SELECT
CASE
WHEN @Day >= 10 THEN STR( @Day, 2, 0 )
WHEN @Day <10 THEN '0' + STR( @Day, 1, 0)
END
)
)
RETURN @NewDate
END
GO
select dbo.funGetNewDate(getdate()) as 当前日期
参考下

declare
@systime varchar(6)

select @systime=replace(convert(varchar(6),getdate(),108),':','')
有点写错了,应该是:
select @systime=replace(convert(varchar(8),getdate(),108),':','')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: