数据库中cast,convert,dateadd都是什么函数,怎么用

2025-01-06 15:14:17
推荐回答(2个)
回答1:

如果SQL Server程序员想将表达式从一种换为另一种,他可以从SQL Server 7和2000中自带的两种功能中做出选择。在存储过程或其他情况下,我们常常需要将数据从datetime型转化成varchar型;CONVERT和CAST就可以用于这种情况。

由于SQL Server提供两种功能,因此应该选择哪种功能或应该在哪种情况下使用该功能就很容易让人困惑了。CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性。

CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST。因此,我建议首先使用CAST,如果遇到必须使用CONVERT的情况时再使用CONVERT。

CAST和CONVERT还能联合使用,达到特殊的效果。比如,在current date下生成char变量一般使用以下方法:

SELECT CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)

(102表明使用了ANSI日期模式,即yy.mm.dd型)

然而,如果你希望将这个变量明确生成为datetime或smalldatetime变量,以此在特定的数据库栏中兼容,那么你可以使用以下语句:

SELECT CAST(CONVERT(CHAR(10),CURRENT_TIMESTAMP,102) AS DATETIME

返回值将是 yy.mm.dd 00:00:00(如12:00AM作为时间戳;

SQL Server Date 函数
定义和用法
DATEADD() 函数在日期中添加或减去指定的时间间隔。

语法
DATEADD(datepart,number,date)date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。

datepart 参数可以是下列的值:

datepart 缩写
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小时 hh
分钟 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
纳秒 ns

回答2:

convert 就是强制转换,如你可以将数字转换成char类型,这个是不会报错的,如果涉及到其他的转换,数据库一般会报错!。
dateadd 是对日期的进行运算,dateadd(1)表示在日期前加一天。
cast()函数和convert()差不多!
它包括用AS关键字分隔的源值和目标数据类型,如SELECT CAST('123' AS int) 返回值是整型值123。
你可以参考:http://apps.hi.baidu.com/share/detail/19801421